您的位置:首页 > 其它

ZOJ 1051 A New Growth Industry

2012-08-08 19:51 369 查看
没看懂意思的时候,感觉很难。一旦理解了,那就是水题嘛!其实就是细菌感染问题。。。
#include<stdio.h>

#include<string.h>

int main()

{

int day,i,j,K,n;

int D[500],a[500][500],b[500][500];

scanf("%d",&n);

while(n--){

scanf("%d",&day);

memset(a,0,sizeof(a));

for(i=0;i<16;i++) scanf("%d",&D[i]);

for(i=0;i<20;i++)

for(j=0;j<20;j++)

scanf("%d",&a[i][j]);

while(day--){

for(i=0;i<20;i++){

for(j=0;j<20;j++){

K=a[i][j];

K+=i-1>=0?a[i-1][j]:0;

K+=i+1<20?a[i+1][j]:0;

K+=j-1>=0?a[i][j-1]:0;

K+=j+1<20?a[i][j+1]:0;

b[i][j]=D[K]+a[i][j];

if(b[i][j]>3) b[i][j]=3;

if(b[i][j]<0) b[i][j]=0;

}

}

memcpy(a,b,sizeof(a)); //从源src(b)所指的内存地址的起始位置开始拷贝n个字节到目标dest(a)所指的内存地址的起始位置中

}

for(i=0;i<20;i++){

for(j=0;j<20;j++){点击打开链接

switch(b[i][j]){

case 0: printf("."); break;

case 1: printf("!"); break;

case 2: printf("X"); break;

case 3: printf("#"); break;

}

}

printf("\n");

}

if(n) printf("\n");

}

system("pause");

return 0;

}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: