1 条题解

  • 0
    @ 2025-4-14 18:41:37

    C++ :

    #include <iostream>
    #include <cstdio>
    #include <cmath>
    #include <cstdlib>
    #include <cmath>
    #include <algorithm>
    #include <stack>
    #include <vector>
    #include <cstring>
    const double pi=acos(-1.0);
    using namespace std;
    int g[111][111];
    int main()
    {
        int T;scanf("%d",&T);
        double sq1=0.25*pi;
        double sq2=pi/6+sqrt(3)/4;
        while(T--)
        {
            memset(g,0,sizeof(g));
            int num;scanf("%d",&num);
            for(int i=1;i<=num;i++)
            {
                int x,y;scanf("%d%d",&x,&y);
                g[x][y]=1;
            }
            double ans=0;
            for(int i=0;i<=100;i++)
            {
                for(int j=0;j<=100;j++)
                {
                    double tttt=ans;
                    int ss=g[i][j]+g[i+1][j]+g[i][j+1]+g[i+1][j+1];
                    if(ss==1)
                    {
                        ans+=sq1;
                    }
                    else if(ss>2)
                    {
                        ans+=1;
                    }
                    else if(ss==2&&((g[i][j]==1&&g[i+1][j+1]==1)||(g[i][j+1]==1&&g[i+1][j]==1)))
                    {
                        ans+=1;
                    }
                    else if(ss==2)
                    {
                        ans+=sq2;
                    }
                }
            }
            printf("%.5f\n",ans);
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    3079
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者