POJ 1120
来源:互联网 发布:英雄无敌for mac 编辑:程序博客网 时间:2024/06/06 10:07
题意:给一个20*20矩阵,每个位置上有一个0-3之间的值,给定16个元素的数组D,对于矩阵的每个元素,它的变化为D[k],其中k为自身元素+上下左右元素的和。最后,根据最后的矩阵输出响应的字符。
//11222749c00h00g1120Accepted168K0MSC++1363B2013-01-30 17:20:08//WA 2次 原因:这题目不是以EOF结束,而且只有一组测试样例 #include<stdio.h>#include<stdlib.h>int day;int d[16];int mat[20][20];int tmp[20][20];int dir[4][2]={{0,1},{-1,0},{0,-1},{1,0}};int calk(int x,int y){ int sum=mat[x][y]; for(int i=0;i<4;i++){ int xx=x+dir[i][0]; int yy=y+dir[i][1]; if(xx>=0&&xx<20&&yy>=0&&yy<20) sum+=mat[xx][yy]; } return sum;}int main(){ scanf("%d",&day);{ for(int i=0;i<16;i++) scanf("%d",&d[i]); for(int i=0;i<20;i++) for(int j=0;j<20;j++) scanf("%d",&mat[i][j]); while(day--){ for(int i=0;i<20;i++) for(int j=0;j<20;j++){ tmp[i][j]=0; tmp[i][j]=mat[i][j]+d[calk(i,j)]; if(tmp[i][j]<0) tmp[i][j]=0; if(tmp[i][j]>3) tmp[i][j]=3; } for(int i=0;i<20;i++) for(int j=0;j<20;j++) mat[i][j]=tmp[i][j]; } for(int i=0;i<20;i++){ for(int j=0;j<20;j++){ if(mat[i][j]==0) printf("."); if(mat[i][j]==1) printf("!"); if(mat[i][j]==2) printf("X"); if(mat[i][j]==3) printf("#"); } printf("\n"); } } return 0;}
- POJ 1120
- poj-1120
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- Hashmap原理加原代码
- 携程网JS接口
- C++中的单例模式
- JQuery Mobile 两个页面之间的参数传递
- 在chrome浏览器查看js源码时,中文乱码的解决
- POJ 1120
- plsql使用自定义的嵌套表
- HttpURLConnection请求数据流的写入(write)和读取(read)
- 转屏相关的权威解释
- 在一个应用中启动另一个已安装的应用
- intent 使用
- 我的C#之旅
- 经典IT职业面试英语问答
- android中动态实现全屏和动态退出全屏方法