欢迎光临散文网 会员登陆 & 注册

POJ 1265 Area 题解

2021-03-30 21:12 作者:昵称不能为空voidf  | 我要投稿

题目大意:在一个点阵中给定一个多边形,求出它内部整点个数、边界上的整点数和它的面积。注意这里给出的点是以当前点与下一个点之间的差分形式给出。


是完全不知道如何下手的板子题

翻阅资料找到了Pick定理:

https://zh.wikipedia.org/wiki/%E7%9A%AE%E5%85%8B%E5%AE%9A%E7%90%86

然后感谢https://blog.csdn.net/qq_32126633/article/details/52094218这篇文章提到的一种优雅的计算边界上整点的办法:

%E8%BE%B9%E7%95%8C%E7%82%B9%E6%95%B0%3D%5Csum_%7Bi%3D0%7D%5E%7Bn-1%7D%7Bgcd(%7Cx_%7Bi%2B1%7D-x_i%7C%2C%20%7Cy_%7Bi%2B1%7D-y_i%7C)%7D)

于是Polygon的轮子可以扩展了

98年的g++也有std::__gcd()用,能用别人的就别自己造轮子

最后注意这题每组输出要多打一个回车


POJ 1265 Area 题解的评论 (共 条)

分享到微博请遵守国家法律