洛谷 P3397 地毯

P3397 地毯

题目背景

此题约为NOIP提高组Day2T1难度。

题目描述

n*n的格子上有m个地毯。

给出这些地毯的信息,问每个点被多少个地毯覆盖。

输入输出格式

输入格式:

 

第一行,两个正整数n、m。意义如题所述。

接下来m行,每行两个坐标(x1,y1)(x2,y2),代表一块地毯,左上角是(x1,y1),右下角是(x2,y2)

 

输出格式:

 

输出n行,每行n个正整数。

i行第j列的正整数表示(i,j)这个格子被多少个地毯覆盖。

 

输入输出样例

输入样例#1:
5 3
2 2 3 3
3 3 5 5
1 2 1 4
输出样例#1:
0 1 1 1 0
0 1 1 0 0
0 1 2 1 1
0 0 1 1 1
0 0 1 1 1

说明

样例解释

0 0 0 0 0         0 0 0 0 0        0 1 1 1 0
0 1 1 0 0         0 1 1 0 0        0 1 1 0 0
0 1 1 0 0    ->   0 1 2 1 1   ->   0 1 2 1 1
0 0 0 0 0         0 0 1 1 1        0 0 1 1 1
0 0 0 0 0         0 0 1 1 1        0 0 1 1 1

数据范围

对于20%的数据,有n<=50m<=100

对于100%的数据,有n<=1000m<=1000

 

/*简单的模拟 O(n^3) 没问题*/
#include<cstdio>
using namespace std;
const int MAXN=1010;
int n,m,a[MAXN][MAXN];
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=m;i++)
    {
        int x,y,x2,y2;
        scanf("%d%d%d%d",&x,&y,&x2,&y2);
        for(int j=x;j<=x2;j++)
            for(int k=y;k<=y2;k++)
                a[j][k]++;
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    return 0;
}

 

posted @ 2016-09-26 19:08  球痞丶小七  阅读(421)  评论(0编辑  收藏  举报