北大2339题
来源:互联网 发布:淘宝海外购物怎么处理 编辑:程序博客网 时间:2024/05/17 01:53
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2339
需要用到一个辅助数组存储一天后的战况,并且要及时更新原局势。
#include <iostream>
using namespace std;
#define MAX 100
bool Win(char a,char b)
{
if(a == 'R' && b == 'S')
return true;
if(a == 'S' && b == 'P')
return true;
if(a == 'P' && b == 'R')
return true;
return false;
}
int main()
{
freopen("in.txt","r",stdin);
char res[MAX][MAX],map[MAX][MAX];
int i,j,k,t,r,c,n,x,y,move[4][2];
move[0][0] = 1,move[0][1] = 0;
move[1][0] = -1,move[1][1] = 0;
move[2][0] = 0,move[2][1] = 1;
move[3][0] = 0,move[3][1] = -1;
cin >> t;
while(t--)
{
cin >> r >> c >> n;
for(i = 0;i < r;++i)
{
for(j = 0;j < c;++j)
{
cin >> map[i][j];
res[i][j] = map[i][j];
}
}
while(n--)
{
for(i = 0;i < r;++i)
{
for(j = 0;j < c;++j)
{
for(k = 0;k < 4;++k)
{
x = i + move[k][0];
y = j + move[k][1];
if(x >= 0 && x < r && y >= 0 && y < c)
{
if(Win(map[i][j],map[x][y]))
res[x][y] = map[i][j];
}
}
}
}
for(i = 0;i < r;++i)
{
for(j = 0;j < c;++j)
map[i][j] = res[i][j];
}
}
for(i = 0;i < r;++i)
{
for(j = 0;j < c;++j)
cout << res[i][j];
cout << endl;
}
cout << endl;
}
return 0;
}
- 北大2339题
- 北大1002题
- 北大1503题
- 北大1519题
- 北大1517题
- 北大1068题
- 北大2039题
- 北大1484题
- 北大2590题
- 北大2608题
- 北大1047题
- 北大1102题
- 北大1316题
- 北大3268题
- 北大2394题
- 北大2895题
- 北大2109题
- 北大1328题
- 关于Debug和Release之本质区别的讨论
- 北大2218题
- 汉化英文游戏有什么意义?
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(5)欧几里得算法欧几里得算法求最大公约数
- 说“诡”道“诈”——解读“兵者,诡道也”+——文献综述
- 北大2339题
- 代码--C++全排列和子集的实现
- 访问oracle数据库Long类型字段遇到的问题!
- struts2传值问题
- 来电显示
- His stock falling?
- Label挡住TextBox
- 算是第一篇吧
- [英语阅读]感恩节金星木星月球齐聚夜空