首页 > 其他 > 详细

POJ1654-Area

时间:2016-05-09 01:37:21      阅读:193      评论:0      收藏:0      [点我收藏+]

这道题主要的注意的地方就是叉积有向面积公式使用的熟练度;

还有注意数据类型;

技术分享
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;

char num[1000100];
int dir[10][2]={0,0,-1,-1,0,-1,1,-1,-1,0,0,0,1,0,-1,1,0,1,1,1};

int corss(int x1,int y1,int x2,int y2){
    return x1*y2-x2*y1;
}

int main(){
    //for(int i=1;i<=9;i++) cout<<dir[i][0]<<" "<<dir[i][1]<<endl;
    int T,len,x1,y1;
    long long ans;
    scanf("%d",&T);
    getchar();
    while(T--){
        scanf("%s",num);
        getchar();
        len = strlen(num);
            ans=0;
            x1 = 0;
            y1 = 0;
            for(int i=0;i<len-1;i++){
                ans+=corss(x1,y1,x1+dir[num[i]-0][0],y1+dir[num[i]-0][1]);
                //cout<<corss(x1,y1,x1+dir[num[i]-‘0‘][0],y1+dir[num[i]-‘0‘][1])<<endl;;
                x1 = x1+dir[num[i]-0][0];
                y1 = y1+dir[num[i]-0][1];
            }
            if(ans<0) ans = -ans;
            printf(ans%2==0?"%lld\n":"%lld.5\n",ans/2);
        
        
        
    }
    return 0;
} 
View Code

 

POJ1654-Area

原文:http://www.cnblogs.com/yuanshixingdan/p/5472384.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!