/*
poj 1654 Area 多边形面积 题目意思很简单,但是1000000的point开不了
*/
#include<stdio.h>
#include<math.h>
#include<string.h>
const int N=1000000+10;
const double eps=1e-8;
struct point
{
double x,y;
point(){}
point(double a,double b):x(a),y(b){}
};
int len,index;
char t_s[N];
//基础函数/////////////////////////
double mo_distance(point p1,point p2)
{
return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
double mo_xmult(point p2,point p0,point p1)//p1在p2左返回负,在右边返回正
{
return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
} bool mo_ee(double x,double y)
{
double ret=x-y;
if(ret<0) ret=-ret;
if(ret<eps) return 1;
return 0;
}
bool mo_gg(double x,double y) { return x > y + eps;} // x > y
bool mo_ll(double x,double y) { return x < y - eps;} // x < y
bool mo_ge(double x,double y) { return x > y - eps;} // x >= y
bool mo_le(double x,double y) { return x < y + eps;} // x <= y //求多边形面积
double area_polygon(point shang,point zhe)
{
point yuan;
yuan.x=yuan.y=0;
return mo_xmult(zhe,yuan,shang)/2;
} ///////////////////
int getpoint(point shang,point &zhe)
{
if(t_s[index]=='5')
return 0;;
char doo=t_s[index];
int n=1;
while(t_s[index+1]==t_s[index])
{
++n;
++index;
}
++index;
if(doo=='1')
{
zhe.x=shang.x-n;
zhe.y=shang.y-n; }else if(doo=='2')
{
zhe.x=shang.x;
zhe.y=shang.y-n; }else if(doo=='3')
{
zhe.x=shang.x+n;
zhe.y=shang.y-n; }else if(doo=='4')
{
zhe.x=shang.x-n;
zhe.y=shang.y; }else if(doo=='9')
{
zhe.x=shang.x+n;
zhe.y=shang.y+n; }else if(doo=='6')
{
zhe.x=shang.x+n;
zhe.y=shang.y; }else if(doo=='7')
{
zhe.x=shang.x-n;
zhe.y=shang.y+n; }else if(doo=='8')
{
zhe.x=shang.x;
zhe.y=shang.y+n; }
return 1;
}
int main()
{
int t;
scanf("%d",&t);
getchar();
while(t--)
{
gets(t_s);
len=strlen(t_s);
index=0;
point shang(0,0),zhe;
double area=0;
while(getpoint(shang,zhe))
{
area+=area_polygon(shang,zhe);
shang=zhe;
}
if(area<0)
area=-area;
__int64 ret=(__int64)area,i;
for(i=ret;i<=ret+2;++i)
{
if(mo_ee((double)i,area))
{
printf("%I64d\n",i);
break;
}else if(mo_ee(0.5+i,area))
{
printf("%I64d.5\n",i);
}
}
}
return 0;
}

poj 1654 Area 多边形面积的更多相关文章

  1. POJ 1654 Area 多边形面积 G++会WA

    #include<stdio.h> #include<algorithm> #include <cstring> using namespace std; type ...

  2. POJ 1654 Area 凸包面积

    水题直接码... /********************* Template ************************/ #include <set> #include < ...

  3. poj 1654 Area (多边形求面积)

    链接:http://poj.org/problem?id=1654 Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions:  ...

  4. poj 1654 Area(计算几何--叉积求多边形面积)

    一个简单的用叉积求任意多边形面积的题,并不难,但我却错了很多次,double的数据应该是要转化为long long,我转成了int...这里为了节省内存尽量不开数组,直接计算,我MLE了一发...,最 ...

  5. 2018.07.04 POJ 1654 Area(简单计算几何)

    Area Time Limit: 1000MS Memory Limit: 10000K Description You are going to compute the area of a spec ...

  6. POJ 1654 Area

    题意:从原点出发,沿着8个方向走,每次走1个点格或者根号2个点格的距离,最终回到原点,求围住的多边形面积. 分析:直接记录所经过的点,然后计算多边形面积.注意,不用先保存所有的点,然后计算面积,边走变 ...

  7. POJ 3348 /// 凸包+多边形面积

    题目大意: 给定的n个点 能圈出的最大范围中 若每50平方米放一头牛 一共能放多少头 求凸包 答案就是 凸包的面积/50 向下取整 /// 求多边形面积// 凹多边形同样适用 因为点积求出的是有向面积 ...

  8. poj 1654 Area(多边形面积)

    Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17456   Accepted: 4847 Description ...

  9. poj 1654 Area(求多边形面积 && 处理误差)

    Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16894   Accepted: 4698 Description ...

随机推荐

  1. Java [leetcode 25]Reverse Nodes in k-Group

    题目描述: Given a linked list, reverse the nodes of a linked list k at a time and return its modified li ...

  2. EF框架step by step(8)—Code First DataAnnotations(2)

    上一篇EF框架step by step(7)—Code First DataAnnotations(1)描述了实体内部的采用数据特性描述与表的关系.这一篇将用DataAnnotations描述一下实体 ...

  3. HDU 5288 OO’s Sequence

    题意:给一个序列,函数f(l, r)表示在[l, r]区间内有多少数字不是其他数字的倍数,求所有区间的f(l, r)之和. 解法:第一次打多校……心里还有点小激动……然而一道签到题做了俩点……呜呜呜… ...

  4. POJ 1947-Rebuilding Roads(树形背包)

    题意: 一个树求得到一个节点数为p的子树,最小需要删除的边数. 分析:父节点到儿子这条边,删或不删,背包问题. #include <map> #include <set> #i ...

  5. gSoap的 “error LNK2001: 无法解析的外部符号 _namespaces”解决方法

    gSoap是C/C++开发webService服务第三方的公开类库. 出现上述错误是因为缺少必要的头文件导致的. 在用wsdl2h生成头文件的时候,一并生成了类似 xx.nsmap 的文件,这个文件实 ...

  6. NOIP2012 国王游戏

    2国王游戏 (game.cpp/c/pas) [问题描述] 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数 ...

  7. uvalive 3135 Argus priority_queue

    用优先队列维护每个时间点优先级最高的元素. #include<iostream> #include<cstdio> #include<cstdlib> #inclu ...

  8. Web技术导论复习大纲

    1. 什么是URL,其一般形式是什么? 资源类型://网址[:端口号][/[文件路径/文件名]][?参数名=参数值&参数名=参数值...] 2. 什么是B/S模式,与C/S模式相比有哪些优越性 ...

  9. 转载SSIS中的容器和数据流—数据转换(Transformations)续

    数据挖掘请求 数据挖掘任务是SSIS中一个很重要的任务,它的思想来源于一些算法.数据挖掘请求运行数据挖掘请求,并将结果输出到数据流.它还可以添加一些预测新列,一些应用场合如下列举: 根据已知的一些列, ...

  10. pom.xml报错

    错误太多打开文件后就不会显示,点开前边的选项卡就会提示错误信息,一般是jar包没加载全.