zoj 3155 Street Lamp 高斯消元 异或方程组 求方案数
2016-04-15 21:33
411 查看
题目链接:http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3155
题意:给出一张图有灯泡的连接关系和初始灯泡状态,相邻的灯泡如果相连则可以相互影响,求使所有灯泡最后都关闭的不同操作的情况数。
和poj1222差不多,不过这题求的是方案数。
题意:给出一张图有灯泡的连接关系和初始灯泡状态,相邻的灯泡如果相连则可以相互影响,求使所有灯泡最后都关闭的不同操作的情况数。
和poj1222差不多,不过这题求的是方案数。
#include <bits/stdc++.h> using namespace std; #define maxn 12 int a[maxn*maxn][maxn*maxn]; char mp[maxn*2][maxn*2]; int n, m; int Gauss(int n, int m) { int r, c; for(r = 0, c = 0; r < n && c < m; r++, c++) { int max_r = r; for(int i = r+1; i < n; i++) { if(fabs(a[i][c]) > fabs(a[max_r][c])) max_r = i; } if(a[max_r][c] == 0){r--; continue;} if(max_r != r) { for(int i = r; i < m+1; i++) swap(a[r][i], a[max_r][i]); } for(int i = r+1; i < n; i++) { if(a[i][c] == 0) continue; for(int j = r; j < m+1; j++) { a[i][j] ^= a[r][j]; } } } for(int i = r; i < n; i++) { if(a[i][c]) return -1; } if(r < m) return m-r; else return 0; } int main() { //freopen("in.txt", "r", stdin); while(~scanf("%d%d", &n, &m)) { getchar(); for(int i = 0; i < 2*n-1; i++) { string s; getline(cin, s); for(int j = 0; j < 2*m-1; j++) mp[i][j] = s[j]; } memset(a, 0, sizeof(a)); int N = n*m; for(int i = 0; i < N; i++) a[i][i] = 1; for(int i = 0; i < 2*n-1; i++) { for(int j = 0; j < 2*m-1; j++) { if(i%2) { if(mp[i][j] == '|') a[(i-1)/2*m+j/2][(i+1)/2*m+j/2] = a[(i+1)/2*m+j/2][(i-1)/2*m+j/2] = 1; } else { if(j%2) { if(mp[i][j] == '-') a[i/2*m+(j-1)/2][i/2*m+(j+1)/2] = a[i/2*m+(j+1)/2][i/2*m+(j-1)/2] = 1; } else { if(mp[i][j] == 'o') a[(i/2)*m+j/2] = 1; } } } } int ans = Gauss(N, N); if(ans == -1) printf("0\n"); else printf("%d\n", (1<<ans)); } return 0; }
相关文章推荐
- 作业五
- 排序算法之二:冒泡、插入、希尔、快排
- 小需求:查询mapping对应的表及字段
- Java作业5
- C#—密度较量拓展
- 119. Pascal's Triangle II
- mysql FIND_IN_SET的使用
- POJ 2485 Highways
- LeetCode *** 90. Subsets II
- Unity3D-深入剖析NGUI的游戏UI架构
- window10使用命令ssh工具生成github开源中国需要的ssh密钥以及转换为ppk让tortriseGit工具支持它
- PHP 文件打开/读取/读取
- LightOj 1341
- CF 658 D 数学 方程解的个数
- 玩得开心
- 使用junit4测试Spring
- CodeForces 222B Cosmic Tables
- 1.Http的Post与Get区别与联系,实践中如何选择它们?
- CSS3的新属性animation
- POJ 1087 A Plug for UNIX 最大流