码迷,mamicode.com
首页 > 其他好文 > 详细

POJ1654-Area

时间:2016-05-09 01:40:33      阅读:169      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!