2 条题解

  • 0
    @ 2025-9-8 15:36:55
    #include<bits/stdc++.h>
    using namespace std;
    int main() {
    	int map[102][102]={0},n,sum=0,x1,y1,x2,y2;
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>x1>>y1>>x2>>y2;
    		for(int j=x1+1;j<=x2;j++)
    		for(int k=y1+1;k<=y2;k++){
    			map[j][k]=1;//涂色
    		}
    	}
    	for(int i=1;i<=101;i++)
    		for(int j=1;j<=101;j++)
    			if(map[i][j])
            sum++;//计数
    	cout<<sum;
        return 0;
    }
    
    • 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;
      }
      
      • 1

      信息

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