与POJ1226为例

要知道在一个格点多边形内 知道期内部的点数 Q,边上的点数L,就可以知道他的面积pick定理及 S=Q+L/2-1;

然后 还有边上的点数除了多边形的顶点外,还有一些点该怎么求呢,嘎嘎,记得之前欧几里得吗?两个点的差值,及X轴的差值和Y轴的差值,然后很自然的想到了最大公约数为什么最大公约数就是经过的整格点的个数呢? 当时我是这么想的,当X与Y增长相同的时候,他们的经过的整格点数无疑是X个,当其中一个n倍数式的增加的时候同样,因为之前的1:1的增长现在只不过变成了1:n罢了.那当两个同时增长的时候分别增长n,和m倍.的时候只不过比变成了n:m罢了嘎嘎现在应该明白了好了

#include <iostream>
#include<cstdio>
#include<string.h>
#include<cmath>
using namespace std;
struct point
{
double x,y;
point (double a=0,double b=0){x=a;y=b;}
};
struct point p[105];
double cross(point a,point b)
{
return a.x*b.y-a.y*b.x;
}
double work(int n)
{
int i;
double sum=0;
for(i=0;i<n;i++)
sum+=cross(p[i],p[(i+1)%n]);
return sum/2;
}
int gcd(int a,int b)
{
int t;
if(a<b)
{
t=a;a=b;b=t;
}
if(b==0)return a;
else return gcd(b,a%b);
}
int main()
{
int t,n,i;
int x,y,k;
double sum;
int num1,num2;
scanf("%d",&t);
k=0;
while(t--)
{
num2=0;
scanf("%d",&n);
p[0]=point(0,0);
for(i=1;i<=n;i++)
{
scanf("%d%d",&x,&y);
p[i].x=p[i-1].x+x;
p[i].y=p[i-1].y+y;
x=x>0?x:-x;
y=y>0?y:-y;
num2+=gcd(x,y);
}
sum=work(n);
num1=(2*sum+2-num2)/2;
printf("Scenario #%d:\n",++k);
printf("%d %d %.1lf\n\n",num1,num2,sum);
}
return 0;
}

匹克定理pick的更多相关文章

  1. POJ 2954 Triangle (pick 定理)

    题目大意:给出三个点的坐标,问在这三个点坐标里面的整数坐标点有多少个(不包含边上的) 匹克定理:I = (A-E) / 2 + 1; A: 表示多边形面积 I : 表示多边形内部的点的个数 E: 表示 ...

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

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

  3. POJ 1265 Area (Pick定理 & 多边形面积)

    题目链接:POJ 1265 Problem Description Being well known for its highly innovative products, Merck would d ...

  4. 洛谷 P2735 电网

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

  5. HDU 3775 Chain Code ——(Pick定理)

    Pick定理运用在整点围城的面积,有以下公式:S围 = S内(线内部的整点个数)+ S线(线上整点的个数)/2 - 1.在这题上,我们可以用叉乘计算S围,题意要求的答案应该是S内+S线.那么我们进行推 ...

  6. 【POJ】2954 Triangle(pick定理)

    http://poj.org/problem?id=2954 表示我交了20+次... 为什么呢?因为多组数据我是这样判断的:da=sum{a[i].x+a[i].y},然后!da就表示没有数据了QA ...

  7. UVa 10088 - Trees on My Island (pick定理)

    样例: 输入:123 16 39 28 49 69 98 96 55 84 43 51 3121000 10002000 10004000 20006000 10008000 30008000 800 ...

  8. Area(Pick定理POJ1256)

    Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5429   Accepted: 2436 Description ...

  9. poj 2954 Triangle(Pick定理)

    链接:http://poj.org/problem?id=2954 Triangle Time Limit: 1000MS   Memory Limit: 65536K Total Submissio ...

随机推荐

  1. IOS 7 更改导航栏文字到白色

    To hide status bar in any viewcontroller: -(BOOL) prefersStatusBarHidden { return YES; } To change t ...

  2. Facebook Cache Token Issue

    https://developers.facebook.com/docs/ios/token-caching-ios-sdk/ What's session? https://developers.f ...

  3. Egret IDE中搜索,过滤文件,只搜索.ts

    刚开始忘了这个搜索条件在哪里打开了,后来找着了,记录一下 = =!

  4. 【LOJ6077】「2017 山东一轮集训 Day7」逆序对 生成函数+组合数+DP

    [LOJ6077]「2017 山东一轮集训 Day7」逆序对 题目描述 给定 n,k ,请求出长度为 n的逆序对数恰好为 k 的排列的个数.答案对 109+7 取模. 对于一个长度为 n 的排列 p ...

  5. 9.9Dajngo MTV

    2018-9-9 14:53:53 mvc框架和 Django的MTV框架 框架参考 :https://www.cnblogs.com/liwenzhou/p/8296964.html 2018-9- ...

  6. return 通过文件后缀名得到的函数字符串

    <?php//图片处理工具类class Image{//属性private $thumb_width; //缩略图的宽private $thumb_height;//错误属性public $th ...

  7. POJ-1088 滑雪 (记忆化搜索,dp)

    滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 86318 Accepted: 32289 Description Mich ...

  8. HDU-1003 Max Sum(动态规划,最长字段和问题)

    Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  9. TensorFlow指定GPU使用及监控GPU占用情况

    查看机器上GPU情况 命令: nvidia-smi 功能:显示机器上gpu的情况 命令: nvidia-smi -l 功能:定时更新显示机器上gpu的情况 命令:watch -n 3 nvidia-s ...

  10. iOS服务器证书不受信任的解决版本

    参考文章链接: https://www.cnblogs.com/v-jing/p/6008964.html http://www.cocoachina.com/ios/20151021/13722.h ...