您的位置:首页 > 其它

zoj 1051

2014-06-16 15:54 232 查看
难懂的英文题。看了好长时间的题目才明白,英语有待提高。

题意:在培养皿中,分成20X20的小方块,每个方块都有自己的密度,同时受到上下左右四个方向方块密度的影响。问N天之后每个方块的相对密度即:自己的密度+周围的密度。

#include <stdio.h>

#include <string.h>

int dna[20];

int ans[22][22],mid[22][22];

int main()

{

int T;

scanf("%d",&T);

while(T--)

{

memset(ans,0,sizeof(ans));

memset(mid,0,sizeof(mid));

memset(dna,0,sizeof(dna));

int Day;

scanf("%d",&Day);

for(int i=0;i<16;i++)

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

for(int i=1;i<21;i++)

for(int j=1;j<21;j++)

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

for(int D=0;D<Day;D++)

{

for(int i=1;i<21;i++)

{

for(int j=1;j<21;j++)

{

mid[i][j]=ans[i-1][j]+ans[i+1][j]+ans[i][j-1]+ans[i][j+1]+ans[i][j];//初始化的时候要加上自己的密度

}

}

for(int i=1;i<21;i++)

{

for(int j=1;j<21;j++)

{

ans[i][j]+=dna[mid[i][j]];

if(ans[i][j]>3)

ans[i][j]=3;

if(ans[i][j]<0)

ans[i][j]=0;

}

}

}

for(int i=1;i<21;i++)

{

for(int j=1;j<21;j++)

{

if(ans[i][j]==0)

printf(".");

if(ans[i][j]==1)

printf("!");

if(ans[i][j]==2)

printf("X");

if(ans[i][j]==3)

printf("#");

}//不需要输出空格,很坑的错了好几次都是因为输出了空格

printf("\n");

}

if(T>0)

printf("\n");、、最后一行没有空行。

}

return 0;

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