2 条题解

  • 0
    @ 2025-9-6 17:39:38
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int n,i,f,g,m,a[101][101];
    	cin>>n;
    	int x[n][4];//x1,y1,x2,y2
    	for(f=0;f<101;f++)
    	{
    		for(g=0;g<101;g++)
    		{
    			a[f][g]=0;//初始化地图
    		}
    	}
    	for(i=0;i<n;i++)
    	{
    		cin>>x[i][0]>>x[i][1]>>x[i][2]>>x[i][3];//输入
    		if(x[i][0]>x[i][2])
    		{
    			m=x[i][0];
    			x[i][0]=x[i][2];
    			x[i][2]=m;
    		}
    		if(x[i][1]>x[i][3])
    		{
    			m=x[i][1];
    			x[i][1]=x[i][3];
    			x[i][3]=m;
    		}//对坐标进行重新排序
    		for(f=x[i][0]+1;f<=x[i][2];f++)
    		{//f=x[i][0]+1是重新矫正坐标(把交叉点坐标改成格子的坐标)
    			for(g=x[i][1]+1;g<=x[i][3];g++)
    			{
    				a[f][g]=1;
    			}
    		}//将所有指定区域涂色
    	}
    	m=0;
    	for(f=0;f<101;f++)
    	{
    		for(g=0;g<101;g++)
    		{
    			if(a[f][g]==1)
    				m++;
    		}
    	}//把所有已涂色区域计数
    	cout<<m;
    	return 0;
    }
    

    信息

    ID
    188
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    45
    已通过
    14
    上传者