题目传送门

这个东西,本来我是用求出两条一次函数解析式然后判断在x坐标下的y坐标值来做的

首先因为没考虑钝角三角形,WA了

然后又因为精度处理不好又WA了

一气之下,只能去网上查了查那个皮克定理

首先用皮克定理需要知道:在(0,0)到(n,m)这条线段上的整点个数有gcd(n,m)+1个,至于怎么证明,我没有深究(会用不就完了

这是对于一条过原点的线段,不过原点的线段呢?我是这样理解的:我把坐标系的原点平移到了该线段的的某个端点上,以这个点的坐标为原点,把上面的式子写出来,然后......就解决了

皮克定理:在网格点中三角形的面积: 2S = 2a + b - 2(我太懒了,复制一个吧

其中,s表示多边形面积,a表示图形内的格点数,b为图形边界上的格点数

然后利用推导公式(不就是逆用嘛):a=(2s-b+2)/2就行了。

但是嘞,又是该死的精度!

这样会造成一定的精度丢失,那怎么办?

尽量减少除法就行了!

把公式改为a=s-b/2+1,这样精度的问题就可以忽略了,然后就A掉了呢

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cmath>
#define max(a,b) (a>b?a:b)
#define k1 (double(m)/double(n))
#define k2 (double(m)/double(n-p))
#define b (-p*k2) using namespace std; double n,m,p;
double tot; int main(){
scanf("%lf%lf%lf",&n,&m,&p);
tot=double(__gcd((int)n,(int)m)+__gcd((int)fabs(p-n),(int)m)+p);
printf("%.0lf\n",p*m/2-tot/2+1);
return 0;
}

LuoGu P2735 电网 Electric Fences的更多相关文章

  1. 洛谷P2735 电网 Electric Fences

    P2735 电网 Electric Fences 11通过 28提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 在本题中,格点是 ...

  2. 洛谷 P2735 电网 Electric Fences Label:计算几何--皮克定理

    题目描述 在本题中,格点是指横纵坐标皆为整数的点. 为了圈养他的牛,农夫约翰(Farmer John)建造了一个三角形的电网.他从原点(0,0)牵出一根通电的电线,连接格点(n,m)(0<=n& ...

  3. luoguP2735 电网 Electric Fences

    一道校内模拟赛遇见的题 ** 不会正解就真的很麻烦的 数学题 ** 有一种东西叫 皮克定理 发现的千古神犇: 姓名:George Alexander Pick(所以叫皮克定理呀 国籍:奥地利(蛤!竟然 ...

  4. Luogu P2735 电网【真·计算几何/Pick定理】By cellur925

    题目传送门 刷USACO偶然遇到的,可能是人生中第一道正儿八经的计算几何. 题目大意:在平面直角坐标系中给你一个以格点为顶点的三角形,求三角形中的整点个数. 因为必修5和必修2的阴影很快就想到了数学中 ...

  5. USACO 6.4 Electric Fences

    Electric FencesKolstad & Schrijvers Farmer John has decided to construct electric fences. He has ...

  6. 洛谷 P2735 电网

    https://www.luogu.org/problemnew/show/P2735 定理什么的最讨厌了,匹克定理?不会,也不想学. 粉色的为电网,将图中的电网我们将他构造一个矩形,然后蓝色和绿色的 ...

  7. luogu 2735 电网 皮克公式

    题目链接 题意 给定一个格点三角形,三个顶点分别为(0,0),(n,m),(p,0),求三角形内部的格点个数. 思路 皮克公式: \[S = \frac{i}{2}+b-1\] \(S\)为三角形面积 ...

  8. USACO6.4-Electric Fences:计算几何

    Electric Fences Kolstad & Schrijvers Farmer John has decided to construct electric fences. He ha ...

  9. USACO 6.4 章节

    The Primes 题目大意 5*5矩阵,给定左上角 要所有行,列,从左向右看对角线为质数,没有前导零,且这些质数数位和相等(题目给和) 按字典序输出所有方案... 题解 看上去就是个 无脑暴搜 题 ...

随机推荐

  1. 二十九、Linux 进程与信号——minishell(2)

    编程内容: 1.完成  echo env export 命令 2.完成前后台进程 3.完成重定向 完整代码如下: 29.1 主函数.通用头文件和Makefile 29.1.1 主函数 mshell_m ...

  2. 关于PHP建立数据库访问类的封装以及操作php单例模式连接数据库封装类

    建立数据库访问类的封装 <?php   class DBDA {     public $host = "localhost"; //服务器地址     public $ui ...

  3. Kali Linux之使用SET快捷生成钓鱼网站方法

    SET (Social Engineering Tools) 1.使用命令:setoolkit 会显示工具菜单 2.输入1 ,选择菜单中的Social-Engineering Attacks (社会工 ...

  4. 第26月第2天 vim javacomplete

    1. 将解压出来的autoload 和 doc的内容添加到~/.vim/下的相应目录下,如果~/.vim下没有这两个文件夹就手动创建其中autoload里的有javacomplete.vim java ...

  5. Vue.js 技术揭秘(学习) slot

    slot特性分发父组件的内容 作用域插槽:通过子组件的一些数据来决定父组件实现插槽

  6. Shiro入门 - md5+salt测试

    算法分类 典型的散列算法包括 MD2.MD4.MD5 和 SHA-1 待更新... 代码 /** * md5散列算法测试 */ @Test public void testMD5(){ String ...

  7. Core Mvc传值Query、Form、Cookies、Session、TempData、Cache

    1.传值方法 使用Request的方法(1-3): 1)Query:获取链接?后面的值 如:http://localhost:55842/Home/About?name=kxy public IAct ...

  8. 2017-2018-2 20165234 实验三 《Java面向对象程序设计》实验报告

    实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参考 http://www.cnblogs. ...

  9. DataGrid 查出一个列 按要求显示格式 例如:操作人(地点)

    这是转换DataGrid显示格式之后 连接字符串的方法 显示:操作人(地点) public static ObservableCollection<CListModel> AllUserL ...

  10. webrtc学习笔记

    获取笔记本摄像头视频流 <html> <meta http-equiv="Content-Type" content="text/html; chars ...