POJ 1222 EXTENDED LIGHTS OUT熄灯游戏
2016-07-24 21:40
375 查看
题目链接http://poj.org/problem?id=1222
主要思想是枚举第一行的元素,其余元素是确定的。
AC代码
主要思想是枚举第一行的元素,其余元素是确定的。
AC代码
#include<iostream> using namespace std; int puzzle[6][8], press[6][8]; bool guess() { for (int r = 1; r<5; r++) for (int c = 1; c<7; c++) press[r + 1][c] = (puzzle[r][c] + press[r][c] + press[r][c - 1] + press[r][c + 1]+press[r-1][c]) % 2; for (int c = 1; c<7; c++) if ((press[5][c - 1] + press[5][c] + press[5][c + 1] + press[4][c]) % 2 != puzzle[5][c]) return false; return true; } void enumerate() { int c; for ( c = 1; c<7; c++) press[1][c] = 0; while (guess() == false) { press[1][1]++; c = 1; while (press[1][c]>1) { press[1][c] = 0; c++; press[1][c]++; } } return; } int main() { for (int i = 0; i<6; i++) press[i][0] = press[i][7] = 0; for (int i = 1; i<7; i++) press[0][i] = 0; int cases; cin >> cases; for (int i = 0; i<cases; i++) { for (int r = 1; r<6; r++) for (int c = 1; c<7; c++) cin >> puzzle[r][c]; enumerate(); cout << "PUZZLE #" << i + 1 << endl; for (int r = 1; r<6; r++) { for (int c = 1; c<7; c++) cout << press[r][c] << " "; cout << endl; } } return 0; }
相关文章推荐
- 初学ACM - 组合数学基础题目PKU 1833
- POJ ACM 1001
- POJ ACM 1002
- 1611:The Suspects
- POJ1089 区间合并
- POJ 2159 Ancient Cipher
- POJ 2635 The Embarrassed Cryptographe
- POJ 3292 Semi-prime H-numbers
- POJ 2773 HAPPY 2006
- POJ 3090 Visible Lattice Points
- POJ-2409-Let it Bead&&NYOJ-280-LK的项链
- POJ-1695-Magazine Delivery-dp
- POJ1523 SPF dfs
- POJ-1001 求高精度幂-大数乘法系列
- POJ-1003 Hangover
- POJ-1004 Financial Management
- [数论]poj2635__The Embarrassed Cryptographer
- [二分图匹配]poj2446__Chessboard
- POJ1050 最大子矩阵和
- 用单调栈解决最大连续矩形面积问题