首页 > 代码库 > 洛谷 P2735 电网 Electric Fences Label:计算几何--皮克定理
洛谷 P2735 电网 Electric Fences Label:计算几何--皮克定理
题目描述
在本题中,格点是指横纵坐标皆为整数的点。
为了圈养他的牛,农夫约翰(Farmer John)建造了一个三角形的电网。他从原点(0,0)牵出一根通电的电线,连接格点(n,m)(0<=n<32000,0<m<32000),再连接格点(p,0)(p>0),最后回到原点。
牛可以在不碰到电网的情况下被放到电网内部的每一个格点上(十分瘦的牛)。如果一个格点碰到了电网,牛绝对不可以被放到该格点之上(或许Farmer John会有一些收获)。那么有多少头牛可以被放到农夫约翰的电网中去呢?
输入输出格式
输入格式:
输入文件只有一行,包含三个用空格隔开的整数:n,m和p。
输出格式:
输出文件只有一行,包含一个整数,代表能被指定的电网包含的牛的数目。
输入输出样例
输入样例#1:
7 5 10
输出样例#1:
20
说明
题目翻译来自NOCOW。
USACO Training Section 3.4
代码
1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #include<cstdio> 5 #include<cstdlib> 6 #include<cmath> 7 #define M 262144 8 using namespace std; 9 10 int x,y,z;11 12 int gcd(int a,int b){13 if(b==0) return a;14 else return gcd(b,a%b);15 }16 17 int main(){18 // freopen("01.in","r",stdin);19 scanf("%d%d%d",&x,&y,&z);20 21 int b=gcd(x,y)+gcd(abs(x-z),y)+z;22 int S=z*y/2;23 int n=S-b/2+1;24 cout<<n<<endl;25 26 fclose(stdin);fclose(stdout);return 0;27 }懂了皮克定理就毫无压力
上度娘链接:http://baike.baidu.com/view/3207200.htm
洛谷 P2735 电网 Electric Fences Label:计算几何--皮克定理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。