NOIP模拟题 2015.8.10 T2
HJWJBSR
posted @ 2015年8月16日 22:51
in 题解
, 472 阅读
题解:考场上面没想出来= =,其实是每次操作相当于在u+k,v这个格子放上1然后一直按杨辉三角往上推,于是ai,j,k代表第i行第j列这个数还要往下推k层,然后就直接递推了= =这样就是n^3的,时限只有2s还真是sxbk。
然后还get了一个东西(其实是语法没学好)unsigned int,这东西必须要用%u输入输出
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
#define N 505
unsigned int a[N][N][N];
int n,m,p;
inline int Read()
{
int x=0;char y;
do y=getchar(); while (y<'0'||y>'9');
do x=x*10+y-'0',y=getchar(); while (y>='0'&&y<='9');
return x;
}
int main()
{
freopen("num.in","r",stdin);freopen("num.out","w",stdout);
n=Read();m=Read();p=Read();
while (p--)
{
int q=Read(),w=Read(),e=Read();
a[q+e][w][e]++;
}
for (int i=n;i>=1;i--)
for (int j=1;j<=m;j++)
for (int k=0;k<=500;k++)
a[i][j][k]+=a[i+1][j][k+1]+a[i][j-1][k+1];
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
printf("%u ",a[i][j][0]);
printf("\n");
}
return 0;
}
评论 (0)