Fence9
题目大意:
求点(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。”
关于皮克定理的证明。百度百科上有。
Fence9的更多相关文章
- usaco training 3.4.3 fence9 题解
Electric Fence题解 Don Piele In this problem, `lattice points' in the plane are points with integer co ...
- USACO3.43Electric Fence(pick定理)
忘记pick定理是什么了 想枚举来着 ..没枚出来 有篇pick定理的证明 貌似挺好 也没太看懂 /* ID: shangca2 LANG: C++ TASK: fence9 */ #include ...
- USACO 3.4 Electric Fence
Electric FenceDon Piele In this problem, `lattice points' in the plane are points with integer coord ...
随机推荐
- Android activity四种基本启动模式
standard:默认的模式,每次启动会新创建一个activity对象 singleTop:在当前任务栈中,判断栈顶是否为当前的activity,如果是,就直接使用,如果不是,就会创建新的activi ...
- Could not initialize class sun.awt.X11GraphicsEnvironment
报错:
- libevent源码安装及Linux自动编译功能总结
这个..那个..后来发现..直接用jumbo就可以安装libevent.不过,学习一些automake的知识还是有好处的. 03机器也安装了. 这几天在阅读libevent源码,发现参考资料是基于li ...
- ID和Name的区别
HTML元素的ID和Name属性的区别一直认为ID和NAME是一样的,两个又可以一起出现,甚是疑惑.今天BAIDU了一下,才发现里面大有文章.发出来研究研究:最classical的答案:ID就像是一个 ...
- maven 启动 报错 Fatal error compiling: 无效的目标发行版
http://news.tuxi.com.cn/news/119999990123162/31622105.html http://lyking2001.iteye.com/blog/837440 针 ...
- 搭建一个简单的Struts2框架
1 创建一个web项目. 2 导入必要的JAR文件. 放在WEB-INF下lib包里. 3 添加web.xml配置,添加启动配置. <?xml version="1.0" ...
- unicode 和 utf-8 的关系和解释
首先一个字节就是8个晶体管同时发出的信号集, unicode就是一套编码,所有的字符都用2个字节表示,不像gbk和gb2312既保持了以前的ansi/ascii的字符单个字节编码,有发明了两个字节保存 ...
- Hive优化
hive.optimize.cp=true:列裁剪hive.optimize.prunner:分区裁剪hive.limit.optimize.enable=true:优化LIMIT n语句hive.l ...
- windows 下使用 Filezilla server 搭建 ftp 服务器
windows 下使用 Filezilla server 搭建 ftp 服务器 1. Filezilla server 免费,开源, ftp 服务端 2. 下载安装, windows https:/ ...
- 【NOIP 2016】斗地主
题意 NOIP 2016 斗地主 给你一些牌,按照斗地主的出牌方式,问最少多少次出完所有的牌. 分析 这道题的做法是DFS. 为了体现这道题的锻炼效果,我自己写了好多个代码. Ver1 直接暴力搞,加 ...