1 条题解
- 
  0
#include<bits/stdc++.h> using namespace std; int a[1005][1005]; int s[1005][1005]; int f[1005][1005]={0}; int main(){ int n,m,p; scanf("%d%d%d",&n,&m,&p); while(p--){ int x ,y ,l,r; scanf("%d%d%d%d",&x,&y,&l,&r); f[x][y]=f[x][y]+1; f[x][r+1]=f[x][r+1]-1; f[l+1][y]=f[l+1][y]-1; f[l+1][r+1]=f[l+1][r+1]+1; } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+f[i][j]; if(f[i][j]>0) a[i][j]=1; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j]; } } int q; // q个区域 cin>>q; while(q--){ int x ,y ,l,r; scanf("%d%d%d%d",&x,&y,&l,&r); int k=s[l][r]-s[x-1][r]-s[l][y-1]+s[x-1][y-1]; int d=(l-x+1)*(r-y+1); if(k==d){ printf("YES\n"); } else{ printf("NO\n"); } } return 0; } 
- 1
 
信息
- ID
 - 3119
 - 时间
 - 1000ms
 - 内存
 - 256MiB
 - 难度
 - 2
 - 标签
 - (无)
 - 递交数
 - 49
 - 已通过
 - 6
 - 上传者