poj1654 - Area
来源:互联网 发布:淘宝网上茶杯犬多少钱 编辑:程序博客网 时间:2024/05/17 21:51
想看更多的解题报告:http://blog.csdn.net/wangjian8006/article/details/7870410
转载请注明出处:http://blog.csdn.net/wangjian8006
题目大意:一个坐标系,从原点开始走,然后1-4分别代表,向右下走,向右走,向右上走,向下走,5代表回到原点,6-9代表,向上走,向左下走,向左走,向左上走。(看翻译直接无限WA),给出一串包含1-9的字符串,问你这些点所围成的面积
根据面积公式,Area=1/2*abs((x0*y1-x1*y0)+(x1*y2-x2*y1)...+(xn*yn-1-xn-1*yn)+(xn*y0-x0*yn)) ,把相邻两点和原点组成一个三角形,而总面积是这n个三角形面积的和,而三角形面积是两个相邻边向量的叉积
#include <stdio.h> #include <string.h> #include <math.h> 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; scanf("%d",&tmp); while(tmp--){ scanf("%s",s); t=strlen(s); if(t<3) {printf("0\n");continue;} 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; } if(area<0) area=(-1)*area; if(area%2==0) printf("%I64d\n",area/2); else printf("%I64d.5\n",area/2); } return 0; }
- poj1654 - Area
- POJ1654-Area
- poj1654 Area
- poj1654——Area
- Area(poj1654多边形面积)
- poj1654 Area 计算几何
- poj1654--Area(几何求面积)
- POJ1654-Area(多边形面积)
- poj1654 Area (计算几何)
- [POJ1654]Area(计算几何)
- poj1654-area 计算多边形的面积
- poj1654
- POJ1654
- poj1654
- POJ1654
- poj1654
- poj1654
- poj1654—Area(计算几何求多边形面积)
- easyUI 创建一个 Property Grid
- .NET基础学习(LINQ)
- web.xml配置详解
- 关于费用报销的分摊问题
- Resource
- poj1654 - Area
- REST思想及与MVC的关系
- mtk经验总结
- linux/win重置mysql的root密码
- 归并排序 白话经典(转载)
- tr
- Socket编程 一个小的聊天程序
- 内存管理(链表,指针操作,繁琐)
- shell正则表达式