poj 2339 Rock, Scissors, Paper
来源:互联网 发布:淘宝c店和天猫的区别 编辑:程序博客网 时间:2024/05/23 01:25
//开始做这一题的时候,读题都读了很久,完全没有读懂,感觉这一题也出得太烂了,题意的疑点成千上万,让人无从下手!//最后只有看别人的解题报告才知道!题意:在一个二维方格中,有三种物种:P,S,R 他们会互相进行攻击,P可以打败R,S可//打败P,R可打败S,他们每天都会发生战争,别打败的物种的方格会别打胜的物种霸占,问经过n天之后,方格上的物种位置情况如何!//这一题需要注意的是: 他们战斗的结果是在夜晚才进行汇总的,在白天的时候,战斗一直都是在那个方格上,他们的位置不会是一//经过战斗就发生改变的! 这就需要开二个二维的数组进行方格位置的储存了!一个是用来战斗时使用的位置方格,一个是用来战斗时//临时结果的位置方格储存!例如第二个案例:grid数组就储存方格位置 ,而tmp数组就储存临时方格位置!第一天的战斗依据就是grid数组//这一整天它的方格上的位置都没有改变,而tmp数组就是对每一次的战斗结果的储存! #include <iostream>#include <string>using namespace std;char grid[110][110];//储存战斗的依据 char tmp[110][110];//储存战斗的临时结果 int main(){ int tc, r, c, n, i, j; cin >> tc; while (tc--) { cin >> r >> c >> n; for (i = 1; i <= r; i++) for (j = 1; j <= c; j++) { cin >> grid[i][j]; tmp[i][j] = grid[i][j]; } while (n--) { //每一天的战斗,依据是grid数组的储存,结果是储存在tmp数组中 for (i = 1; i <= r; i++) { for (j = 1; j<= c; j++) { if (grid[i][j] == 'R') { if (i-1 > 0 && grid[i-1][j] == 'S') tmp[i-1][j] = 'R'; if (j-1 > 0 && grid[i][j-1] == 'S') tmp[i][j-1] = 'R'; if (i+1 <= r && grid[i+1][j] == 'S') tmp[i+1][j] = 'R'; if (j+1 <= c && grid[i][j+1] == 'S') tmp[i][j+1] = 'R'; } else if (grid[i][j] == 'S') { if (i-1 > 0 && grid[i-1][j] == 'P') tmp[i-1][j] = 'S'; if (j-1 > 0 && grid[i][j-1] == 'P') tmp[i][j-1] = 'S'; if (i+1 <= r && grid[i+1][j] == 'P') tmp[i+1][j] = 'S'; if (j+1 <= c && grid[i][j+1] == 'P') tmp[i][j+1] = 'S'; } else if (grid[i][j] == 'P') { if (i-1 > 0 && grid[i-1][j] == 'R') tmp[i-1][j] = 'P'; if (j-1 > 0 && grid[i][j-1] == 'R') tmp[i][j-1] = 'P'; if (i+1 <= r && grid[i+1][j] == 'R') tmp[i+1][j] = 'P'; if (j+1 <= c && grid[i][j+1] == 'R') tmp[i][j+1] = 'P'; } } } //每一天的战斗结束之后,就进行战斗结果的汇总,最后赋值给grid数组! for (i = 1; i <= r; i++) for (j = 1; j <= c; j++) grid[i][j] = tmp[i][j]; } for (i = 1; i <= r; i++) { for (j = 1; j <= c; j++) cout << grid[i][j]; cout << endl; } if (tc != 0) cout << endl; } system("pause");}
- poj 2339 Rock, Scissors, Paper
- POJ 2339 Rock, Scissors, Paper
- POJ-2339-Rock, Scissors, Paper
- poj 2339 Rock, Scissors, Paper
- POJ - 2339 Rock, Scissors, Paper
- poj 2339 Rock, Scissors, Paper
- poj 2339 Rock, Scissors, Paper
- poj 2339 Rock, Scissors, Paper 模拟
- 模拟->YY POJ 2339 Rock, Scissors, Paper
- POJ 2339 Rock, Scissors, Paper(模拟)
- POJ 2339 Rock, Scissors, Paper 模拟
- POJ 2339 Rock, Scissors, Paper 笔记
- poj 3917 Rock, Paper, Scissors
- poj 2654 Rock-Paper-Scissors Tournament
- POJ-2654-Rock-Paper-Scissors Tournament
- POJ 3917 Rock, Paper, Scissors G++
- Rock-Paper-Scissors
- 【poj2339】Rock, Scissors, Paper
- 百度地图循环添加标注,并循环为标注添加信息窗口问题解决
- NSString setString的用法:彻底更换
- 打造一个基于OSGi的Web Application——增加日志输出功能
- log4j 日志打印 配置
- iOS: best tutorial of splitview + popover + custom input view
- poj 2339 Rock, Scissors, Paper
- JavaScript基础之Array,你精通了吗?
- 开源语音识别软件
- request_mem_region,ioremap
- LINUX 可执行程序一运行直接core掉问题解决
- 《Excel表格的基本操作》163招技巧]
- 如果不讲信用,那就是在透支未来。
- tomcat 启动报错 java.lang.Exception: Socket bind failed
- Struts2配置文件讲解