洛谷 P2735 电网 Electric Fences
题目
题目描述
在本题中,格点是指横纵坐标皆为整数的点。
为了圈养他的牛,农夫约翰(Farmer John)建造了一个三角形的电网。他从原点(0,0)牵出一根通电的电线,连接格点(n,m)(0<=n<32000,0
7 5 10
输出样例#1:
20
题解
数学知识的应用
tip:毕克定理公式: S=(2N+L-2)/2
其中,S是格点多边形的面积,N是区域内部的格点数,L是区域边界上的格点数。
代码
#include<cstdio>
#include<cmath>
using namespace std;
int n,m,p,L,ans;
double a,b,c,w,S;
int gcd(int x,int y)
{
if (x==0) return y;
else return gcd(y%x,x);
}
int abs(int x)
{
if (x<0) return -x; else return x;
}
int main()
{
scanf("%d%d%d",&n,&m,&p);
L=gcd(n,m)+gcd(abs(p-n),m)+p;
S=p*m;
ans=trunc(S+2-L)/2;
printf("%d",ans);
return 0;
}
“`