【计算几何】ural 1849 Rabbit Hunt 2

通道:http://acm.timus.ru/problem.aspx?space=1&num=1849

题意:N(10000)只兔子,M(100000)把抢及其方向向量,问以哪把枪能射击最多的兔子。

思路:由于向量只在【-10,10】之间,那么我们可以暴力存放每只兔子关于向量的一个偏移量,slop1 = Point(i, j), slop2 = Point(j, -i), Point(slop2 * rabbit[k], slop1 * rabbit[k]), i,j分别为2个斜率。对于每把抢,依然这样算出偏移量,那么二分该斜率所对应的兔子的上下界就可以了,

代码:https://github.com/Mithril0rd/Rojo/blob/master/ural1849.cpp

TAG:神题一般的存在。

posted @ 2014-12-03 15:12  mithrilhan  阅读(133)  评论(0编辑  收藏  举报