zoukankan      html  css  js  c++  java
  • poj 1654 Area 求面积 水题 +longlong %lld输出

    题目来源:
    http://poj.org/problem?id=1654

    代码如下:

    typedef long long LL ;
    const double EPS = 1e-10;
    const int Max_N = 1000005;
    char s[Max_N];
    int dx[10]={0,-1,0,1,-1,0,1,-1,0,1};
    int dy[10]={0,-1,-1,-1,0,0,0,1,1,1};
    struct Point
    {
        int x,y;
    };
    int xmult(Point p1, Point p2){
        return p1.x*p2.y-p1.y*p2.x;
    }
    Point p[Max_N];
    LL sum;
    int main(){
    
        int n;
        scanf("%d",&n);
        while(n--){
    
            scanf("%s",s);
            int len=strlen(s);
            if(len <3) {printf("0
    ");continue;}
            p[0].x=0,p[0].y=0;
            for(int i=0; i<len; i++){
                p[i+1].x=p[i].x+dx[s[i]-'0' ];
                p[i+1].y=p[i].y+dy[s[i]-'0' ];
            }
            sum=0;
            for(int i=0; i<len; i++){
                sum+=xmult(p[i],p[i+1]);
            }
            if(sum<0) sum=-sum;
    
            if(sum & 1)
                printf("%lld.5
    ",sum/2);
            else
                printf("%lld
    ",sum/2);
        }
        return 0;
    }
  • 相关阅读:
    第5周作业
    第四周JAVA作业
    第三周JAVA学习
    第二周JAVA学习日志
    有关JAVA学习
    Swift 页面跳转
    Swift 登录判断
    单元测试学习
    WCF学习心得
    初次使用Oracle
  • 原文地址:https://www.cnblogs.com/zn505119020/p/3669444.html
Copyright © 2011-2022 走看看