码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-11-13 16:16:06      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:algo   span   electric   空格   mat   math   end   john   题目   

题目描述

在本题中,格点是指横纵坐标皆为整数的点。

为了圈养他的牛,农夫约翰(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:计算几何--皮克定理

标签:algo   span   electric   空格   mat   math   end   john   题目   

原文地址:http://www.cnblogs.com/radiumlrb/p/6058576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!