zoukankan      html  css  js  c++  java
  • POJ 1654 多边形面积

    模板题。

    View Code
     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 #include <cstdlib>
     5 #include <algorithm>
     6 
     7 #define N 1000010
     8 
     9 using namespace std;
    10 
    11 struct PO
    12 {
    13     int x,y;
    14 }p[N];
    15 
    16 char str[N];
    17 int n;
    18 int dx[10]={0,-1,0,1,-1,0,1,-1,0,1};
    19 int dy[10]={0,-1,-1,-1,0,0,0,1,1,1};
    20 
    21 inline int cross(PO &a,PO &b,PO &c)
    22 {
    23     return (b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y);
    24 }
    25 
    26 inline long long llabs(long long x)
    27 {
    28     if(x>0) return x;
    29     return -x;
    30 }
    31 
    32 inline void go()
    33 {
    34     scanf("%s",str+1);
    35     n=strlen(str+1);
    36     int a=0,b=0;
    37     for(int i=1;i<=n;i++)
    38     {
    39         a+=dx[str[i]-'0'];
    40         b+=dy[str[i]-'0'];
    41         p[i].x=a; p[i].y=b;
    42     }
    43     long long area=0;
    44     for(int i=1;i<n;i++) area+=(long long)cross(p[0],p[i],p[i+1]);
    45     area=llabs(area);
    46     if(area&1LL) printf("%lld.5\n",area>>1LL);
    47     else printf("%lld\n",area>>1LL);
    48 }
    49 
    50 int main()
    51 {
    52     int cas; scanf("%d",&cas);getchar();
    53     while(cas--) go();
    54     return 0;
    55 }
  • 相关阅读:
    python
    spice-vdagent
    no ia32-libs
    git conflict
    wget mirror
    docker !veth
    libprotobuff8.so not found
    angular 列表渲染机制
    Java测试技巧
    react组件生命周期
  • 原文地址:https://www.cnblogs.com/proverbs/p/2924594.html
Copyright © 2011-2022 走看看