题目大意:

求点(0,0),(n,m),(p,0)三点构成的三角形内部(不包括边界)整点的个数。

解题过程:
1.直接枚举纵坐标,然后算出两条直线上纵坐标为y的点的横坐标,然后他们中间的点就是符合要求的。边界处理超级恶心。要特判直线没有斜率的情况,n=0或者p=n的情况。搞了好几次才AC。

2.nocow上的题解:

皮克定理说明了顶点是整点的多边形面积S和内部格点数目a、边上格点数目b的关系:S = a + b/2 - 1。根据三角形面积公式求出S。如果知道了b,那么三角形内部格点数目a也就求出来了。可以证明,一条直线((0,0),(n,m))上的格点数等于n与m的最大公约数+1。

即b=gcd(n,m)+1. gcd(n,m)为n与m的最大公约数。

代入皮克公式,即可求出a的值;

还有如何求出直线(p,0)(n,m)上的整点的个数呢。。首先把它对称一下是不会影响答案的,那么如果斜率是负,就对称一下,如何向左平移p个单位,就变成了“一条直线((0,0),(n,m))上的格点数等于n与m的最大公约数+1。”

关于皮克定理的证明。百度百科上有。

最新文章

  1. Linux From Scratch(从零开始构建Linux系统,简称LFS)- Version 7.7(一)
  2. C#读取Excel表格数据到DataGridView中和导出DataGridView中的数据到Excel
  3. 如何选择合适的CRM客户关系管理软件?
  4. Enterprise Library 6
  5. Runner站立会议08
  6. 获得View的真实高度
  7. css 超出部分显示省略号
  8. POJ 3267-The Cow Lexicon(DP)
  9. Cocos2d-x v3.0 正式版 如何创建一个项目,TestCpp执行
  10. python之pymysql模块学习(待完善...)
  11. C# Lambda表达式运用
  12. 来杯咖啡看Pecan
  13. BZOJ_3143_[Hnoi2013]游走_期望DP+高斯消元
  14. vue2.x入坑总结—回顾对比angularJS/React的一统
  15. 如果IDEA右上角的tomcat消失了,解决办法
  16. strtok strchr strrchr strchrnul
  17. .NET MVC 学习笔记(六)— 数据导入
  18. webpack4 自学笔记二(typescript的配置)
  19. 完美解决PHP中文乱码
  20. 使用Homebrew在Mac OS X EI Capitan上安装与配置nginx和PHP

热门文章

  1. Oracle 10g实现存储过程异步调用
  2. 使用kaptcha生成验证码
  3. 转!!java中关键字volatile的作用
  4. 自己学习smarty的一些代码 和记录
  5. php中高级基础知识点
  6. 集成骨骼动画Spine的几点经验
  7. Linux命令行下编译Android NDK的示例代码
  8. cocos2dx与Lua以及quick cocos
  9. webstorm注释写出的提示
  10. Datatable的Select()方法简介