poj 1654
来源:互联网 发布:巴纳姆效应知乎 编辑:程序博客网 时间:2024/06/05 04:43
题目意思就是求多边形的面积。用叉乘,用原点(0,0)和多变形的每两个相邻点(按一定的方向,可以是顺时针,也可以是逆时针)构成一个三角形,求有向面积,所有的有向面积之和的绝对值除以2即为所求。
以下是代码:
- #include<cstdio>
#include<iostream>
using namespace std;
const int N=1000010; - struct point
{
__int64 x,y;
}p0,p1;
int dir[10][2]={{0,0},{-1,-1},{0,-1},{1,-1},{-1,0},{0,0},{1,0},{-1,1},{0,1},{1,1}};
char str[N]; - __int64 getarea(point p1,point p2)
{
return p1.x*p2.y-p2.x*p1.y;
}//由于是原点到p1、p2的向量,所以求面积时只要这样就行了 - int main()
{
int T;
scanf("%d",&T);
while(T--)
{
p0.x=0;p0.y=0;
int i;
__int64 area=0;
scanf("%s",str);
for(i=0;str[i];i++)
{
int id=str[i]-'0';
p1.x=p0.x+dir[id][0];
p1.y=p0.y+dir[id][1];
area+=getarea(p1,p0);
p0=p1;
}
if(area<0) area=-area;
__int64 res=area/2;
if(res*2==area)
printf("%I64d/n",res);
else
printf("%I64d.5/n",res);
}
return 0;
}
- poj 1654
- POJ 1654
- poj 1654
- poj 1654
- POJ 1654
- poj 1654
- poj 1654
- poj 1654 Area
- POJ 1654 Area
- POJ 1654 Area
- poj 1654 Area
- POJ 1654 Area
- poj 1654Area
- poj 1654 Area
- POJ 1654 多边形面积
- POJ 1654 Area
- POJ 1654 Area
- poj 1654 Area
- Eclipse 安装 UML2 tools 插件 的方法
- 2011年程序员薪资调查报告
- java的集合类【转】
- 201105月计划
- 地磅15针到9针数据线连接串口数据采集方法
- poj 1654
- JAVA的IO处理【转】
- 每次提到这本书,我都心动
- WIN7继续研究(二):用VHD装新机
- 理解java枚举类型
- Memwatch简介
- JAVA的文件操作【转】
- 禁用myeclipse indexes 及 优化myEclipse 启动速度
- JAVA编程规则【转自java编程思想】