高斯消元法解异或方程组 模板
来源:互联网 发布:豆瓣知乎的运营方式 编辑:程序博客网 时间:2024/05/22 06:31
写过才发现与实数的线性方程组不同,但不过更为容易,且不用考虑精度等问题。
该类算法的应用在于一系列开关问题等等经典模型。
Code : (未回代求解)
#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#define maxn 35int n, m, k;int a[maxn], b[maxn];void swap(int & a, int & b){int c = a; a = b; b = c;}int calc(){int j = 1, k, ans = 0;for (int i = 1; i <= n; ++ i){for (k = j; k <= n && ! ((a[k] >> i) & 1); ++ k);if (k <= n){swap(a[k], a[j]);for (k = j + 1; k <= n; ++ k)if ((a[k] >> i) & 1) a[k] ^= a[j];++ j;}else ++ ans;}for (int i = 1; i <= n; ++ i)if (a[i] == 1) return - 1;return 1 << ans;}int main(){freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout);for (scanf("%d", & k); k --; ){scanf("%d", & n), memset(a, 0, sizeof a);for (int i = 1; i <= n; ++ i) scanf("%d", b + i), a[i] |= 1 << i;for (int i = 1; i <= n; ++ i) scanf("%d", & m), a[i] |= m != b[i];for (int i, j; scanf("%d%d", & i, & j), i && j; ) a[j] |= 1 << i;if (~ (m = calc())) printf("%d\n", m);else puts("Oh,it's impossible~!!");}return 0;}
- 高斯消元法解异或方程组 模板
- 高斯消元解异或方程组 模板
- [模板]高斯消元,异或方程组
- 高斯消元法解异或方程组
- 高斯消元法解异或方程组
- 高斯消元模板(+解异或方程组)
- bzoj1770-------(算法模板系列之gauss消元异或方程组)
- Even separation jzoj 4551 高斯消元法解异或方程组
- 用高斯消元法解异或方程组
- 异或方程组
- poj 1830 异或方程组
- uva 11542 异或方程组
- jzoj3823 遇见 [高斯消元解异或方程组]
- 线性同余方程组模板
- 高斯消元(xor方程组)模板
- 解方程组(高斯消元模板)
- 3364Lanterns (异或方程组高斯消元)
- POJ1830(异或方程组的高斯消元)
- 细节决定成败
- IO学习(三)
- oracle erp
- 注入中的数字型,字符型,搜索型的区别
- 在DOS下添加用户
- 高斯消元法解异或方程组 模板
- 10--26sql 看看肯定是有用的
- 链接库的例子
- C#的MouseClick和MouseDoubleClick事件讲解
- 【高斯消元解XOR方程组】各种题
- GLSL 绘制管线
- POJ 1504 Adding Reversed Numbers
- XP创建ADSL连接的方法
- 家庭防火应急预案