题目传送门

刷USACO偶然遇到的,可能是人生中第一道正儿八经的计算几何

题目大意:在平面直角坐标系中给你一个以格点为顶点的三角形,求三角形中的整点个数。

因为必修5和必修2的阴影很快就想到了数学中的线性规划,求出两条直线的方程,然后枚举所有整点看是否满足条件。结果莫名其妙的挂掉了,样例过不了。

既然是计算几何萌新,那就看一看题解吧。

正解是一个定理-Pick定理,内容如下

  “Pick定理是说,在一个平面直角坐标系内,如果一个多边形的顶点全都在格点上,那么这个图形的面积恰好就等于边界上经过的格点数的一半加上内部所含格点数再减一。”--Matrix67,侵删。

于是我们就愉快地O(1)算出来了。

Code

 1 #include<cmath>
 2 #include<cstdio>
 3
 4 using namespace std;
 5
 6 int n,m,p,b,S,ans;
 7
 8 int gcd(int x,int y)
 9 {
10     return y ? gcd(y , x%y) : x ;
11 }
12
13 int main()
14 {
15     scanf("%d%d%d",&n,&m,&p);
16     b=gcd(n,m)+gcd(fabs(n-p),m)+p;
17     S=(p*m)>>1;ans=S+1-(b>>1);
18     printf("%d",ans);
19     return 0;
20 }

View Code

转载于:https://www.cnblogs.com/nopartyfoucaodong/p/9531098.html

Luogu P2735 电网【真·计算几何/Pick定理】By cellur925相关推荐

  1. poj 1265 Area(pick 定理)

    链接:poj 1265 题意:从原点出发.给出一些dx,dy移动增量,终于形成一个多边形, 求多边形内部的格点数目,边上的格点数目 .以及面积. 补充知识: 1.以格子点为顶点的线段.覆盖的点的个数为 ...

  2. pku 2954 Triangle pku 1265 Area Pick定理的应用 + 叉积求多边形面积

    Pick定理证明:http://translate.google.com/translate?u=http://episte.math.ntu.edu.tw/articles/sm/sm_25_10_ ...

  3. 整数点与Pick定理

    Pick 定理   设以整数点为顶点的多边形的面积为S,多边形内部的整数点数为N,多边形边界上的整数点数为L,则 N+1/2L-1=S. 对于N与L的计算由下面的程序给出: typedef struc ...

  4. POJ1265(Pick定理的应用)

    题目:Area 先说说什么是Pick定理吧 Pick定理:设以整数点为顶点的多边形的面积为S,多边形内部的整数点数为N,多边形边界上的整数点数为L,则 S=L/2 + N-1. 而对于线段上的整点数我 ...

  5. luogu P6178 【模板】Matrix-Tree 定理

    luogu P6178 [模板]Matrix-Tree 定理 1.无向图 假设现在给定一个图 G. 度数矩阵D:若存在边$ (x,y,z)(x,y,z)$ ,则 D[x][x]+=z;D[y][y]+ ...

  6. 【总结】pick定理Farey序列

    pick定理及其证明 pick定理 结论 在一个平面直角坐标系内,以整点为顶点的简单多边形,设其内部整点数为aaa,边上(包括顶点)的整点数为bbb,则它的面积S=a+b2−1S = a+\frac ...

  7. POJ 1265 Area(Pick定理)

    POJ 1265 Area(Pick定理) 根据pick定理来做 皮克定理是指一个计算点阵中顶点在格点上的多边形面积公式该公式可以表示为 2S=2a+b−2 其中a表示多边形内部的点数,b表示多边形边 ...

  8. 再论推翻百年集论的真扩集定理(2165字)

    再论推翻百年集论的真扩集定理(又改进稿) 黄小宁(广州市华南师大南区9-303  邮编510631) [摘要]提出数容器概念从而非常形象直观地揭示x轴的线段所包含的点必多于其任何一部分的点.中学数学有 ...

  9. poj 2954 Triangle (pick 定理 的应用 )

    题意 : 求一个三角形中的 整数 点有多少个? 题接: Pick定理证明:http://translate.google.com/translate?u=http://episte.math.ntu. ...

最新文章

  1. 让你的网站在IE8的兼容模式下运行
  2. 论MySQL何时使用索引,何时不使用索引
  3. Genymotion的使用 -- A Faster Android Emulator
  4. Machine Learning - Andrew Ng on Coursera (Week 1)
  5. java乱码怎么解决_如何解决java乱码
  6. react-native flatlist 上拉加载onEndReached方法频繁触发的问题
  7. 向导页设计_向导设计模式
  8. 磁盘使用分析器linux,ncdu:基于ncurses库的磁盘使用分析器
  9. 配置electron
  10. 在微信小程序中绘制图表(part3)
  11. java读取各类型的文件
  12. VisualStudio 2013开发Office插件
  13. 在本地Windows系统下搭建Apollo配置中心
  14. Java并发编程实战_《Java并发编程实战》PDF版本下载
  15. 时间序列预测中使用类EMD方法时的信息泄露和计算量问题
  16. 爬取起点小说总排行榜
  17. Java基础——Arrays类的排序方法
  18. 新基建下的工业互联网,等不到第四次工业革命
  19. vim 寄存器 操作_vim操作技巧
  20. PKUSC2016酱油记

热门文章

  1. 利用Chrome的Heap Snapshot功能分析一个时间段内的内存占用率
  2. php截取数组中的字符串,PHP 中使用explode()函数切割字符串为数组的示例
  3. linux vim分屏函数,Linux学习笔记之十二————vim编辑器的分屏操作
  4. cat3 utp是不是网线_UTPCAT3网络双绞线规格型号
  5. html文字斜体变成正体,$$中的字母如何由斜体变成正体?
  6. 1到100猜数字游戏规则c语言,[C语言课程设计猜数字游戏1.doc
  7. gerber文件怎么导贴片坐标_PCBA贴片加工厂家的上机贴片编程
  8. python3 打印_Python 3 进阶 —— print 打印和输出
  9. 2019黑马python面试资料_2019最新Python黑马头条推荐系统项目
  10. python模拟键盘输入视频_python教程-模拟鼠标和键盘输入