数据点题目给得不好啊,可以参考这里
输入样例解释
这道题会无限读入Case,需要while循环来判断最后输入的“0”
一个case会出现这样的数据:
1 表示房屋数量n个
2 - n+1 表示房屋地址
n+2 输入两个核电站坐标并给出影响半径的个数k
n+3 - n+2+k 给出两个核电站的影响半径
之后的Case同样继续读入,直到输入“0”时停止读入
输出样例解释
输出数据格式很简单,直接
1 | Case 1: |
本题思路
这是一道模拟题,难度一般,用心做能做出来
先是while无限输入,然后读入房屋坐标和加油站坐标,直接记录好每个房屋和两个加油站的距离,剪枝优化。这样的话可以避免之后每个循环进行计算。然后对距离进行排序,可以方便计算与半径的距离并且快速舍去后续没有必要的计算。
接着是暴力比较半径的大小,是的话ans++
接下来看代码
代码解析
1 |
|
本题难点
- 题目中的输入数据需要自己猜测(PS:这题目有毒吧。。)
- 排序优化
- 注意细节
题后小结
第一个做出这题的是同学@TheUknownCreator,为我提供了题意解读,感谢帮助。顺便提醒此题没有必要进行快读,scanf速度足够解决本题。
顺便提供一下我和他一起编写出的补充数据