P3433 [POI 2005] PRA-Dextrogyrate Camel

题目描述

Byteotia 由 $N$ 个绿洲组成,且任意三点不共线。Byteasar 住在其中一个绿洲里,并且在其他每个绿洲都有一位熟人。Byteasar 想尽可能多地去拜访他们。他打算骑着他的骆驼出行。这只骆驼像骡子一样倔强,因此以一种特别的方式移动: - 从某个绿洲出发后,它沿一条直线前进,直到到达另一个绿洲。 - 骆驼只在绿洲处转向,而且只向右(顺时针)转,转角属于区间 $[0\degree, 180\degree]$(在同一个绿洲它只会转一次,也就是说不会通过连续两次各 $100\degree$ 的转向来达成总计 $200\degree$ 的转弯)。 - 骆驼不愿踩着自己留下的足迹返回。 请帮助 Byteasar 规划一条路线,使他能在遵守上述规则的前提下拜访尽量多的朋友。路线必须从 Byteasar 所在的绿洲出发,并最终回到该绿洲。路线应由依次连接所访绿洲的线段组成。除了 Byteasar 的起始绿洲(旅程的起点与终点)外,路线不得经过任意一点两次。 起初,Byteasar 的骆驼面朝某个绿洲,且必须首先朝该方向出发。旅程结束时骆驼面向的方向无关紧要。 ### 任务 编写一个程序,完成以下要求: 1. 从标准输入读入骆驼面朝的方向与各个绿洲的坐标; 2. 计算在遵守规则的情况下,Byteasar 最多可以拜访的朋友数量; 3. 将结果写到标准输出。

输入格式

标准输入的第一行包含一个整数 $N$($3 \le N \le 1\ 000$)—— Byteotia 中的绿洲数量。所有绿洲按 $1$ 到 $N$ 编号。Byteasar 居住在编号为 $1$ 的绿洲上,且他的骆驼面朝编号为 $2$ 的绿洲。接下来的 $N$ 行给出各个绿洲的坐标。在第 $(i+1)$ 行,给出两个整数 $x_i, y_i$,分别表示编号为 $i$ 的绿洲的横坐标与纵坐标,二者以一个空格分隔。所有坐标均在区间 $[-16\ 000, 16\ 000]$ 内。

输出格式

标准输出仅一行,输出一个整数—— Byteasar 最多可以拜访的朋友数量。

说明/提示

样例解释: ![](https://cdn.luogu.com.cn/upload/pic/8961.png) 翻译来自 ChatGPT 5。