编程题
### 问题描述 在复杂的环境下航迹快速规划是智能飞行器的一个重要课题,为了简单起见,飞行器只能在 $x$ 轴方向或者 $y$ 轴方向中飞行,且在 $x$ 轴正方向中每飞行 $1$ 米则会产生 $t$ 米的误差(即在 $x$ 轴上多飞 $t$ 米),同理在 $y$ 轴方向中,每飞行 $1$ 米则会产生 $t$ 米的误差(即在 $y$ 轴上多飞 $t$ 米,多飞的距离不会再次产生误差)因为站台空间有限,当飞行器在 $x$ 轴平面与 $y$ 轴平面的误差大于某值时,飞行器将不能安全降落在站台,从而摧毁。(起点的误差为 $0$。$x$ 轴,$y$ 轴误差极限分别为 $SX$,$SY$)。为了解决该问题,欧涛提出在飞行器的路径中分别建立 $n$ 个点(蓝点或红点),其中蓝点用于将 $x$ 轴平面误差清零,红点用于将 $y$ 轴平面误差清零。这样操作,就能解决误差问题。 ### 输入格式 第 $1$ 行输入一个整数 $T$,表示测试次数。 每组测试样例的第一行都包含四个整数,分别为 $t,SX,SY,n$。 每组测试样例的 $2$ 到 $2+n-1$ 行,每行三个数 $ai,bi,d$(代表站台坐标 $(ai,bi)$,其中 $d$ 为站台类别,若 $d$ 为 $0$,则该站台为 $x$ 轴误差清零点,$d$ 为 $1$ 则为 $y$ 轴误差清零点,第一个输入的站台为起点,最后输入的站台为终点,站台输入顺序为飞行器经过站台顺序)。 ### 输出格式 对于每组输入,如果飞行器能正常到达终点,输出 YES,否则输出 NO。 ### 输入样例 ```c++ 3 1 629 5 6 20 90 0 29 39 0 46 76 0 52 48 1 79 37 1 82 83 0 1 258 650 4 39 91 1 52 90 1 62 33 0 69 68 0 3 501 449 1 100 47 1 ``` ### 输出样例 ```c++ NO YES YES ``` ### 样例解释 对于第二个样例: $t=1,SX=258,SY=650,n=4$。 起点 $(39,91)$,此时的 $x$ 与 $y$ 的误差都是 $0$。 起点到第二个站台:$x$ 轴多飞 $(52-39)\times 1$ 米,$y$ 轴多飞 $-(90-91)\times 1$ 米,站台类型为 $1$,$y$ 轴误差清零。 第二个站台到第三个站台:$x$ 轴多飞 $(62-52)\times 1$ 米,$y$ 轴多飞 $-(33-90)\times 1$米,站台类型为 $0$,$x$ 轴误差清零。 第三个站台到第四个站台:$x$ 轴多飞 $(69-62) \times 1$ 米,$y$ 轴多飞 $(68-33)\times 1$ 米,站台类型为 $0$,$x$ 轴误差清零。 因为飞行过程中,$x$ 轴与 $y$ 轴的误差都不大于他的极限($SX$ 或 $SY$),所以可以正常到终点,输出 YES。 ### 评测数据规模 对于 $100\%$ 的评测用例: $0\le T\le10,0\le t\le 1000,2\le n\le 100,0\le SX,SY,a_i,b_i\le 1000$。
查看答案
赣ICP备20007335号-2