POJ 1265 Area (简单多边形求面积+pick公式)
2012-08-16 00:19
375 查看
pick定理:面积=内部点数+边上点数/2 -1;
开始做的时候脑袋发昏,敲了一个小时的模版,枚举点判断与多边形位置,果断TLE
等脑子清醒了,多画了几个图,数了几次点,就A了。。
//Memory: 180K
//Time: 0MS
#include <stdio.h>
#include <math.h>
struct POINT
{
int x,y;
};POINT p[110];
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
double area_of_polygon(int n)//多边形面积
{
int i;
double s;
// if(n<3)
// return 0;
s=p[0].y*(p[n-1].x-p[1].x);
for(i=1;i<n;i++)
s+=p[i].y*(p[i-1].x-p[(i+1)%n].x);
return s/2;
}
int main()
{
int cas,i,j,n;
scanf("%d",&cas);
for(int f=1;f<=cas;f++)
{
scanf("%d",&n);
p[0].x=0;
p[0].y=0;
int dx,dy,on=0,in=0;
for(i=1;i<=n;i++)
{
scanf("%d%d",&dx,&dy);
p[i].x=p[i-1].x+dx;
p[i].y=p[i-1].y+dy;
if(dx==0 || dy==0)
on+=abs(dx+dy);
else
on+=gcd(abs(dx),abs(dy));
}
double area=area_of_polygon(n);
in=area+1-on*1.0/2;
printf("Scenario #%d:\n",f);
printf("%d %d %.1lf\n\n",in,on,area);
}
return 0;
}
开始做的时候脑袋发昏,敲了一个小时的模版,枚举点判断与多边形位置,果断TLE
等脑子清醒了,多画了几个图,数了几次点,就A了。。
//Memory: 180K
//Time: 0MS
#include <stdio.h>
#include <math.h>
struct POINT
{
int x,y;
};POINT p[110];
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
double area_of_polygon(int n)//多边形面积
{
int i;
double s;
// if(n<3)
// return 0;
s=p[0].y*(p[n-1].x-p[1].x);
for(i=1;i<n;i++)
s+=p[i].y*(p[i-1].x-p[(i+1)%n].x);
return s/2;
}
int main()
{
int cas,i,j,n;
scanf("%d",&cas);
for(int f=1;f<=cas;f++)
{
scanf("%d",&n);
p[0].x=0;
p[0].y=0;
int dx,dy,on=0,in=0;
for(i=1;i<=n;i++)
{
scanf("%d%d",&dx,&dy);
p[i].x=p[i-1].x+dx;
p[i].y=p[i-1].y+dy;
if(dx==0 || dy==0)
on+=abs(dx+dy);
else
on+=gcd(abs(dx),abs(dy));
}
double area=area_of_polygon(n);
in=area+1-on*1.0/2;
printf("Scenario #%d:\n",f);
printf("%d %d %.1lf\n\n",in,on,area);
}
return 0;
}
相关文章推荐
- POJ 1265 Area [格点多边形面积 pick公式]
- POJ 1265 Area(面积,pick公式)
- poj 1654 area 简单多边形面积(简单题)
- poj 1265 Area(Pick公式 多边形面积 边点数)
- poj 1265 Area 面积+多边形内点数
- Area - POJ 1265(pick定理求格点数+求多边形面积)
- poj 1265 Area (pick定理+叉积求多边形面积)
- poj1265-Area 皮克定理(求多边形的面积,内部的点数,边上的点数)
- POJ1265——Area(Pick定理+多边形面积)
- POJ 1265 Area (皮克定理,多边形面积计算)
- POJ 1265 Area (Pick定理&多边形面积)
- 【POJ 1265】 Area (Pick定理+叉积求多边形面积)
- poj 1265 Area【计算几何:叉积计算多边形面积+pick定理计算多边形内点数+计算多边形边上点数】
- POJ 1265-Area(多边形面积、边点、内点-pick定理、叉积)
- poj1265--Area(求多边形面积+匹克定理)
- POJ 1265 Area(Pick定理、向量积求面积)
- Area(poj1654多边形面积)
- POJ1645-Area(简单多边形面积计算)
- POJ 1654 Area(叉积计算多边形面积)
- POJ 1654 Area (多边形面积)