HDU 3536 乱搞

点击打开链接

题意:就是一次给区间上颜色,颜色共n中,然后问整个大区间上有多少中颜色被完全覆盖了

思路:没有数据范围的题真是叼,但是各路大神还是可以准确的看出范围真是厉害,然后竟然暴力乱搞就可以过(弱哭),也有说用二维线段树写的,自己考虑了一下,不会写二维的懒惰标记啊,遂停止想法并献上暴力

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf=0x3f3f3f3f;
const ll INF=0x3f3f3f3f3f3f3f3fll;
const int maxn=2010;
int num[maxn][maxn];
bool vis[maxn];
int main(){
    int n,m,k,x1,y1,x2,y2;
    while(scanf("%d%d%d",&n,&m,&k)!=-1){
        memset(vis,0,sizeof(vis));
        memset(num,0,sizeof(num));
        for(int i=1;i<=k;i++){
            scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
            for(int l=x1;l<=x2;l++){
                for(int j=y1;j<=y2;j++){
                    num[l][j]=i;
                }
            }
        }
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            vis[num[i][j]]=1;
        int ans=0;
        for(int i=1;i<=k;i++) if(vis[i]) ans++;
        printf("%d\n",k-ans);
    }
    return 0;
}

你可能感兴趣的:(ACM,HDU)