UVa 10443 - Rock
来源:互联网 发布:类的定义 c语言 编辑:程序博客网 时间:2024/05/17 16:15
題目:在一個二維平面上,有三種細胞剪刀、石頭、布,按照正常的遊戲規則想克制;
每個細胞在一個週期內,會吧自己周圍的克制的細胞變成自己,問d天后的圖形。
分析:簡單題,模擬。模擬每天的狀態求出第d天的即可。
計算過程,用一個緩存,防止干擾。
說明:╮(╯▽╰)╭。
#include <cstring>#include <cstdio>char maps[101][101];char temp[101][101];int dxy[4][2] = {0,1, 1,0, -1,0, 0,-1};int main(){int t, n, m, d;while (~scanf("%d",&t))while (t --) {scanf("%d%d%d",&n, &m, &d);for (int i = 0; i < n; ++ i)scanf("%s",maps[i]);for (int k = 0; k < d; ++ k) {for (int i = 0; i < n; ++ i)for (int j = 0; j < m; ++ j) temp[i][j] = maps[i][j];for (int i = 0; i < n; ++ i)for (int j = 0; j < m; ++ j) for (int p = 0; p < 4; ++ p) {int x = i + dxy[p][0];int y = j + dxy[p][1];if (x < 0 || x >= n || y < 0 || y >= m) continue;if (maps[x][y] == 'S' && maps[i][j] == 'P')temp[i][j] = 'S';if (maps[x][y] == 'P' && maps[i][j] == 'R')temp[i][j] = 'P';if (maps[x][y] == 'R' && maps[i][j] == 'S')temp[i][j] = 'R';}for (int i = 0; i < n; ++ i)for (int j = 0; j < m; ++ j) maps[i][j] = temp[i][j];}for (int i = 0; i < n; ++ i)puts(maps[i]);if (t) puts("");} return 0;}
0 0
- UVa 10443 - Rock
- (advanced) UVA 最短路 10381 - The Rock
- [rock]冷血动物
- Rock myself
- ROCK介绍
- ROCK算法
- Post-rock
- Rock Water ? (we will rock you)
- We will rock you
- Shawn the Rock.
- Rock Debugger 2.0.0.157
- xen on rock
- 係要听ROCK N' ROLL
- mongo 管理工具 rock mongo
- 1.js-pet rock
- Rock-Paper-Scissors
- Cluster: ROCK & CLOPE
- 【poj2339】Rock, Scissors, Paper
- 26条深度学习经验
- 对于Oracle中分页排序查询语句执行效率的比较分析
- 使用GCD
- 设计模式之模板方法
- 以销售角度看Android学习
- UVa 10443 - Rock
- jQuery
- gradle--第十一章 使用Gradle命令行2
- arm-linux-ld 的使用
- 如何在局域网访问Tomcat项目
- H index II
- 通过VB写Get_Next的代码 KMP的next求法
- 获取执行文件路径
- 二叉树的性质