首页 > 代码库 > 【HDOJ】1057 A New Growth Industry
【HDOJ】1057 A New Growth Industry
纯粹的模拟题目。
1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 5 #define MAXN 20 6 #define MAXM 16 7 8 char tb[] = ".!X#"; 9 int D[MAXM];10 int map[2][MAXN+2][MAXN+1];11 int dir[4][2] = {12 {-1,0}, {1,0}, {0,1}, {0,-1}13 };14 15 int isInvalid(int x, int y) {16 return x<0 || x>=MAXN || y<0 || y>=MAXN;17 }18 19 int main() {20 int t, n;21 int i, j, k, p, r;22 int x, y;23 int sum;24 25 #ifndef ONLINE_JUDGE26 freopen("data.in", "r", stdin);27 freopen("data.out", "w", stdout);28 #endif29 memset(map , 0, sizeof(map));30 scanf("%d", &t);31 while (t--) {32 scanf("%d", &n);33 for (i=0; i<MAXM; ++i)34 scanf("%d", &D[i]);35 for (r=0, i=1; i<=MAXN; ++i) {36 for (j=1; j<=MAXN; ++j) {37 scanf("%d", &map[r][i][j]);38 }39 }40 for (p=0; p<n; ++p, r=!r) {41 for (i=1; i<=MAXN; ++i) {42 for (j=1; j<=MAXN; ++j) {43 sum = map[r][i][j] + map[r][i+1][j] + map[r][i-1][j]+44 map[r][i][j+1] + map[r][i][j-1];45 map[!r][i][j] = map[r][i][j] + D[sum];46 if (map[!r][i][j] > 3)47 map[!r][i][j] = 3;48 if (map[!r][i][j] < 0)49 map[!r][i][j] = 0;50 }51 }52 }53 for (i=1; i<=MAXN; ++i) {54 for (j=1; j<=MAXN; ++j) {55 printf("%c", tb[map[r][i][j]]);56 }57 printf("\n");58 }59 if (t)60 printf("\n");61 }62 63 return 0;64 }
【HDOJ】1057 A New Growth Industry
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。