-
//zoj1051 A New Growth Industry
-
//Accepted 1051 C++ 00:00.00 388K
-
#include <stdio.h>
-
#include <string.h>
-
#define MAXN 20
-
char ch[]=".!X#";
-
int dish[MAXN][MAXN],res[MAXN][MAXN];
-
int day,d[16];
-
void solve()
-
{
-
int i,j,k;
-
scanf ("%d",&day);
-
for (k=0; k<16; ++k) scanf ("%d",&d[k]);
-
for (i=0; i<MAXN; ++i)
-
for (j=0; j<MAXN; ++j)
-
scanf ("%d",&dish[i][j]);
-
while (day--){
-
for (i=0; i<MAXN; ++i)
-
for (j=0; j<MAXN; ++j){
-
k = dish[i][j];
-
if (i-1>=0) k += dish[i-1][j];
-
if (i+1<MAXN) k += dish[i+1][j];
-
if (j-1>=0) k += dish[i][j-1];
-
if (j+1<MAXN) k += dish[i][j+1];
-
res[i][j] = dish[i][j]+d[k];
-
if (res[i][j]>3) res[i][j] = 3;
-
if (res[i][j]<0) res[i][j] = 0;
-
}
-
memcpy (dish,res,sizeof(dish));
-
}
-
for (i=0; i<MAXN; ++i){
-
for (j=0; j<MAXN; ++j)
-
printf ("%c",ch[dish[i][j]]);
-
printf ("/n");
-
}
-
}
-
int main()
-
{
-
#ifdef ONLINE_JUDGE
-
#else
-
freopen("1051.txt","r",stdin);
-
#endif
-
int t;
-
while (scanf("%d",&t)!=EOF)
-
while (t--){
-
solve();
-
if (t) printf ("/n");
-
}
-
#ifdef ONLINE_JUDGE
-
#else
-
fclose(stdin);
-
#endif
-
return 0;
-
}
zoj1051 A New Growth Industry
最新推荐文章于 2015-11-05 21:40:23 发布
本文提供了一道ZOJ1051题目的C++解答方案,该题目要求模拟一种新型生长行业的作物生长过程。通过输入初始生长状态及每日生长规则,程序能够模拟指定天数后的作物生长情况并输出最终的状态矩阵。
723

被折叠的 条评论
为什么被折叠?



