POJ 1222 EXTENDED LIGHTS OUT (noi OpenJudge 1813)枚举
2016-10-14 10:22
537 查看
双倍经验
POJ 1222 EXTENDED LIGHTS OUT
(noi OpenJudge 1813)中文题面
易知, 确定了第一行的状态就可以知道一下所有行的状态, 因为 完全可以通过更改 i+1 行 使 i 行 合法, 所以我们只要枚举一下 第一行的所有可能 更改开关的方案, 往下地推, 看看到了最后一行 是不是合法即可。这里用到了二进制枚举。
代码:
POJ 1222 EXTENDED LIGHTS OUT
(noi OpenJudge 1813)中文题面
易知, 确定了第一行的状态就可以知道一下所有行的状态, 因为 完全可以通过更改 i+1 行 使 i 行 合法, 所以我们只要枚举一下 第一行的所有可能 更改开关的方案, 往下地推, 看看到了最后一行 是不是合法即可。这里用到了二进制枚举。
代码:
#include <iostream> #include <queue> #include <cstdio> #include <cstring> using namespace std; const int MAXN = 10; bool maps[MAXN][MAXN], a[MAXN][MAXN]; bool solve(int T) { for(int i = 1; i <= 5; i ++) for(int j = 1; j <= 6; j ++) a[i+1][j] = (maps[i][j] + a[i][j] + a[i][j-1] + a[i][j+1] + a[i-1][j]) % 2; for(int j = 1; j <= 6; j ++) if((maps[5][j] + a[5][j] + a[5][j-1] + a[5][j+1] + a[5-1][j])%2) return 0; printf("PUZZLE #%d \n", T); for(int i = 1; i <= 5; i ++) { for(int j = 1; j <= 6; j ++) cout << a[i][j] << " "; cout << endl; } return 1; } int main() { int T; cin >> T; for(int k = 1; k <= T; k ++) { memset(maps, 0, sizeof(maps)); for(int i = 1; i <= 5; i ++) for(int j = 1; j <= 6; j ++) scanf("%d", &maps[i][j]); for(int i = 0; i < (1<<6); i ++) { memset(a,0,sizeof(a)); for(int j = 0; j < 6; j ++) { if(i&(1<<j)) // 如果是 1; a[1][6-j] = 1; } if(solve(k)) break; } } return 0; }
相关文章推荐
- poj1222(枚举)熄灯游戏 EXTENDED LIGHTS OUT
- poj 1222 & zoj 1354 EXTENDED LIGHTS OUT (枚举)
- POJ 1222 EXTENDED LIGHTS OUT(熄灯问题——枚举)
- 2017省选拔(三)poj 1222 EXTENDED LIGHTS OUT (状态压缩+枚举反转)
- poj 1222 EXTENDED LIGHTS OUT(位运算+枚举)
- Poj-1222-EXTENDED LIGHTS OUT-枚举
- poj 1222 EXTENDED LIGHTS OUT(位运算+枚举)
- POJ-1222 EXTENDED LIGHTS OUT【暴力枚举】
- poj1222 EXTENDED LIGHTS OUT 高斯消元解异或方程组 模板
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT - 熄灯问题-详解
- poj 1222 EXTENDED LIGHTS OUT(高斯消元(开关问题 对2取模的01方程组))
- poj-1222 EXTENDED LIGHTS OUT
- poj1222 EXTENDED LIGHTS OUT(YY+高斯消元)
- poj 1222 EXTENDED LIGHTS OUT(Gauss)
- poj 1222 EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT 【高斯消元】
- poj 1222 EXTENDED LIGHTS OUT (高斯消元法)
- 【POJ】1222 - EXTENDED LIGHTS OUT 反转
- poj 1222 EXTENDED LIGHTS OUT(数学:高斯消元||爆搜:DFS)