1 条题解
-
0118爱好者 (mengqingyu) LV 10 @ 2024-7-26 9:31:26
#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
- 标签
- (无)
- 递交数
- 42
- 已通过
- 4
- 上传者