ZOJ 1051 A New Growth Industry {4597}
啊~本來昨天做的ZOJ 2433就有一種有了ACM,媽媽再也不用擔心我的英語閱讀的感覺,今天又碰到了1051。想到了某個周四下午。甚至不小心發現了學長在別人部落格上關於這道題的請教,原來大神也是一點點努力的。
讀題讀題,題目就是說給出20*20的矩陣,上面的數字是基礎,然後上下左右還有自己相加得到一個數字,這個數字是對應的成長趨勢的數值的下標,根據趨勢,改變這個基礎數字,然後輸出對應符號。
代碼:
#include<stdio.h>int main(){int i,g,N,n,j,k,f,t,d[20];int c[22][22] = {0};int a[22][22] = {0};scanf("%d",&N);for(j = 1;j<=N;j++){getchar();scanf("%d",&n);for(t = 0;t<=15;t++){scanf("%d",&d[t]);}for(g = 1;g<=20;g++){for(f = 1;f<=20;f++){scanf("%d",&a[g][f]);}}for(k = 1;k<=n;k++){for(g = 1;g<=20;g++){for(f = 1;f<=20;f++){c[g][f] = a[g][f-1]+a[g][f+1]+a[g-1][f]+a[g+1][f]+a[g][f];}}for(g = 1;g<=20;g++){for(f = 1;f<=20;f++){t = c[g][f];a[g][f] = a[g][f]+d[t];if(a[g][f]<0)a[g][f] = 0;if(a[g][f]>3)a[g][f] = 3;}}}for(g = 1;g<=20;g++){for(f = 1;f<=20;f++){if(a[g][f]==0)printf(".");if(a[g][f]==1)printf("!");if(a[g][f]==2)printf("X");if(a[g][f]==3)printf("#");}printf("\n");}if(j!=N)printf("\n");getchar();}return 0;}