51Nod-1337-翻转游戏
2016-09-09 16:42
281 查看
ACM模版
描述
题解
首先逐关进行两次遍历,遍历第一遍,查找到开关操作是否需要,再遍历一遍,检索?,如果遇见
?则向下一组查找对应位置,直到查找到最后一关卡,或者不是
?的关卡,这时,根据此关卡是否进行相关开关操作来改变后边关卡的对应位置的状态,具体有三大种五小种状态,逐一分析,逐一修正即可。
代码
#include <iostream> #include <cstring> using namespace std; const int MAXN = 55; char LevS[MAXN][MAXN]; void init() { for (int i = 0; i < MAXN; i++) { LevS[0][i] = '-'; } return ; } int main(int argc, const char * argv[]) { init(); // freopen("/Users/zyj/Desktop/input.txt", "r", stdin); int T; cin >> T; while (T--) { int N, M; cin >> N >> M; int count = N; for (int i = 1; i <= N; i++) { scanf("%s", LevS[i]); } for (int i = 1; i <= N; i++) { bool open = false; bool close = false; for (int j = 0; j < M; j++) { if (LevS[i - 1][j] == '-' && LevS[i][j] == '+') { open = true; } else if (LevS[i - 1][j] == '+' && LevS[i][j] == '-') { close = true; } } if (open) { count++; } if (close) { count++; } for (int j = 0; j < M; j++) { int pos = i; while (LevS[pos][j] == '?' && pos < N) { pos++; } if (pos == i) { continue; } if (LevS[pos][j] == LevS[i - 1][j] || LevS[pos][j] == '?') { for (int k = i; k <= pos; k++) { LevS[k][j] = LevS[i - 1][j]; } } if (LevS[pos][j] == '+' && LevS[i - 1][j] == '-' && open) { for (int k = i; k < pos; k++) { LevS[k][j] = '+'; } } else if (LevS[pos][j] == '+' && LevS[i - 1][j] == '-' && !open) { LevS[i][j] = '-'; } if (LevS[pos][j] == '-' && LevS[i - 1][j] == '+' && close) { for (int k = i; k < pos; k++) { LevS[k][j] = '-'; } } else if (LevS[pos][j] == '-' && LevS[i - 1][j] == '+' && !close) { LevS[i][j] = '+'; } } } cout << count << '\n'; } return 0; }
相关文章推荐
- 51nod-1337:翻转游戏
- 51nod 1337 翻转游戏
- 51nod 1337 翻转游戏
- 51nod 1180 方格射击游戏
- 51nod 1459 迷宫游戏
- 51nod 1661 黑板上的游戏(博弈sg函数找规律)
- 51Nod-1072-威佐夫游戏
- html5游戏开发教程实战:五子棋、四子棋、围棋、翻转棋四种对弈游戏,仅仅100行代码
- 51nod 1070 Bash游戏 V4(博弈——找规律)
- HDU 5973Game of Taking Stones 51nod 1185 威佐夫游戏 V2(威佐夫博弈)
- 51nod 1450 闯关游戏 期望dp
- 51nod:天堂里的游戏
- 51nod 1418 放球游戏
- 51nod 1066 Bash游戏
- 51nod 1185 威佐夫游戏 V2
- HTML5游戏实战之精灵翻转
- 【51Nod 1319】跳跃游戏
- 51nod 1459 迷宫游戏
- 51nod 1390 游戏得分
- 51nod 1067 Bash游戏 V2