【计算几何】poj 1654 Area
2012-08-16 20:59
330 查看
计算凸包面积,非常基础的一道计算几何题目,精度问题上比较烦人,需要转换成long long来输出最终结果。
#include<iostream> #include<cstring> #include<stdio.h> using namespace std; const int dir_x[]={0,-1,0,1,-1,0,1,-1,0,1}; const int dir_y[]={0,-1,-1,-1,0,0,0,1,1,1}; struct Point{ double x,y; }; Point p1,p2,current; double dbl(Point a,Point b); int main(){ int t,len; double area; char str[1000005]; scanf("%d",&t); while(t--){ scanf("%s",str); len=strlen(str); //first=false; area=0; current.x=0; current.y=0; p1=current; int last=-1; for(int i=0;i<len-1;i++){ int direction=str[i]-'0'; if(last!=direction){ p2=current; area+=dbl(p1,p2); p1=p2; } current.x+=dir_x[direction]; current.y+=dir_y[direction]; last=direction; } if(area<0) area=-area; long long goal=(long long)area; if(goal%2==0) cout<<goal/2<<endl; else cout<<goal/2<<".5"<<endl; //cout<<area/2<<endl; } //system("pause"); return 0; } double dbl(Point a,Point b){ return (a.x)*(b.y)-(b.x)*(a.y); }
相关文章推荐
- poj 1654 Area(计算几何)
- poj 1654 Area ----- 计算几何
- POJ 1654 Area(计算几何)
- poj1654 Area (计算几何)
- POJ 1654 Area 计算几何基础
- POJ 1654 Area 【叉乘+外积的几何意义】【计算几何】
- Area poj 1654 计算几何
- [POJ1654]Area(计算几何-多边形的面积)
- poj1654 Area 计算几何
- [POJ1654]Area(计算几何)
- 计算几何--POJ--1654--Area
- POJ 1654 Area(计算几何)
- poj1654—Area(计算几何求多边形面积)
- (计算几何POJ step 8.1.1.2)POJ 1654 Area(使用叉积来计算多边形面积)
- POJ 1654 Area计算几何(解题报告)
- POJ 1654 Area 计算几何
- POJ 1654 Area (计算多边形面积)
- POJ 1265-Area(计算几何+皮克定理+多边形面积公式)
- POJ 1654 Area(叉积计算多边形面积)
- POJ 1265 Area(计算几何Pick定理)