hdu 3364 Lanterns(数学:高斯消元)
来源:互联网 发布:陕西省政务数据服务局 编辑:程序博客网 时间:2024/05/16 10:45
典型的开灯关灯问题
行列关系找准就好
数组忘了初始化跪了几发。。。
代码如下:
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define MAXN 100using namespace std;int a[MAXN][MAXN];int b[MAXN][MAXN];void print(int n) { for(int i=1; i<=n; ++i) { for(int j=1; j<=n+1; ++j) printf("%d ", a[i][j]); puts(""); }} int gauss(int m, int n) { int i, j, k, col, max_r; col = 1; for(k=1; k<=n&&col<=m; ++k, ++col) { max_r = k; for(i=k+1; i<=n; ++i) { if(a[i][col] > a[max_r][col]) max_r = i; } if(max_r != k) for(j=1; j<=m+1; ++j) swap(a[k][j], a[max_r][j]); if(a[k][col] == 0) { --k; continue; } for(i=k+1; i<=n; ++i) { if(a[i][col]) { for(j=col; j<=m+1; ++j) a[i][j] ^= a[k][j]; } } } //print(n); for(int i=k; i<=n; ++i) if(a[i][m+1]) return -1; return m+1-k;}int main(void) { int m, n, T, q, k, x; scanf("%d", &T); for(int _=1; _<=T; ++_) { printf("Case %d:\n", _); memset(b, 0, sizeof(b)); scanf("%d%d", &n, &m); for(int i=1; i<=m; ++i) { scanf("%d", &k); while(k--) { scanf("%d", &x); b[x][i] = 1; } } scanf("%d", &q); while(q--) { memcpy(a, b, sizeof(b)); for(int i=1; i<=n; ++i) { scanf("%d", &a[i][m+1]); } //print(n); int ans = gauss(m, n); if(ans == -1) puts("0"); else cout << (1ll<<ans) << endl; } } return 0;}
0 0
- hdu 3364 Lanterns(数学:高斯消元)
- HDU 3364 Lanterns(高斯消元)
- Hdu 3364 Lanterns(高斯消元)
- hdu 3364 Lanterns (高斯消元)
- HDU-#3364 Lanterns(高斯消元)
- 高斯消元HDU-3364 Lanterns
- HDU 3364 Lanterns (高斯消元解开关问题)
- hdu 3364 Lanterns 高斯消元,模板题
- HDU 3364 - Lanterns (高斯消元 + 异或方程组)
- hdu 3364 Lanterns 高斯消元,模板题
- hdu 3364 Lanterns
- HDU 3364 Lanterns 高斯消元法
- HDU 3364 Lanterns
- HDU-3364-Lanterns
- HDOJ 3364 Lanterns (高斯消元)
- hdu3364 Lanterns (高斯消元)
- HDU 3364 Lanterns(高斯消元入门题目——开关问题)
- HDU 3364 Lanterns 高斯消元(水 异或方程
- Sublime配置主题为Flatland
- samba 安装配置
- 本科项目——51单片机多功能万年历
- sublime 开发必备的10款 Sublime Text 插件
- android添加一条短信记录
- hdu 3364 Lanterns(数学:高斯消元)
- nupt-acm1009
- 九宫格的简化算法
- https://android.googlesource.com/platform/manifest/+refs
- 《Essential Linux Device Drivers》第2章(上)
- QT 编译警告 qobject_cast to QGraphicsItem will not work
- 《Essential Linux Device Drivers》第2章(下)
- Android横竖屏切换总结
- App项目一键build平台搭建