首页 > 代码库 > 洛谷 P3397 地毯

洛谷 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 32 2 3 33 3 5 51 2 1 4
输出样例#1:
0 1 1 1 00 1 1 0 00 1 2 1 10 0 1 1 10 0 1 1 1

说明

样例解释

0 0 0 0 0         0 0 0 0 0        0 1 1 1 00 1 1 0 0         0 1 1 0 0        0 1 1 0 00 1 1 0 0    ->   0 1 2 1 1   ->   0 1 2 1 10 0 0 0 0         0 0 1 1 1        0 0 1 1 10 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;}

 

洛谷 P3397 地毯