POJ 1654 Area 计算几何
2014-11-19 12:24
351 查看
#include<stdio.h> #include<string.h> #include<iostream> #include<math.h> using namespace std; int dx[10]={0,1,1,1,0,0,0,-1,-1,-1}; int dy[10]={0,-1,0,1,-1,0,1,-1,0,1}; char s[1000010]; __int64 area,x,y,px,py; int main() { int sum,t,tmp,i; cin>>tmp; while(tmp--) { scanf("%s",s); t=strlen(s); if(t<3) { printf("0\n"); } else { area=0; x=y=0; for(i=0;i<t-1;i++) { px=x+dx[s[i]-'0']; py=y+dy[s[i]-'0']; area+=(px*y-x*py); x=px; y=py; } area=fabs(area); if(area%2==0) cout<<area/2<<endl; else cout<<area/2<<".5"<<endl; } } return 0; }
计算几何,让原点和相邻的两个点的坐标进行叉乘,然后累加起来/2就是面积
由于数据的特殊性质,所有最后%2来判断是否有小数点
相关文章推荐
- [POJ1654]Area(计算几何)
- POJ 1654 Area(计算几何)
- 计算几何--POJ--1654--Area
- [POJ1654]Area(计算几何-多边形的面积)
- (计算几何POJ step 8.1.1.2)POJ 1654 Area(使用叉积来计算多边形面积)
- poj1654 Area (计算几何)
- poj 1654 Area(计算几何)
- poj1654—Area(计算几何求多边形面积)
- 【计算几何】poj 1654 Area
- POJ 1654 Area 【叉乘+外积的几何意义】【计算几何】
- POJ 1654 Area 计算几何基础
- POJ 1654 Area计算几何(解题报告)
- Area poj 1654 计算几何
- POJ 1654 Area(计算几何)
- poj1654 Area 计算几何
- poj 1654 Area ----- 计算几何
- POJ 1265 Area(计算几何Pick定理)
- poj 1265 Area【计算几何:叉积计算多边形面积+pick定理计算多边形内点数+计算多边形边上点数】
- POJ 1654(计算几何基础多边形面积)
- POJ 1265-Area(计算几何+皮克定理+多边形面积公式)