对于某个开关,都有n个选项可能影响它的结果,如果会影响,则系数为1,否则系数为0;最后得到自由元的个数,自由元可选0也可选1.

#include <cstdio>
#include <algorithm> int T, n, a[30], x, y; int gauss() {
for (int i = 1; i <= n; i++) {
//列主
for (int j = i + 1; j <= n; j++) {
if (a[j] > a[i]) {
std::swap(a[i], a[j]);
}
}
if (a[i] == 0) return 1 << (n - i + 1);
if (a[i] == 1) return -1;
//消元
for (int k = n; k; k--) {
if (a[i] & (1 << k)) {
for (int j = 1; j <= n; j++) {
if (i != j && a[j] & (1 << k)) {
a[j] ^= a[i];
}
}
break;
}
}
}
return 1;
} int main(int argc, char const *argv[]) {
scanf("%d", &T);
while (T--) {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
}
for (int i = 1, j; i <= n; i++) {
scanf("%d", &j);
a[i] ^= j;//等号右侧
a[i] |= 1 << i;//a[i][i] = 1
}
while (~scanf("%d %d", &x, &y) && (x | y)) {
a[y] |= 1 << x;//a[y][x] = 1
}
int ans = gauss();
if (ans > 0) printf("%d\n", ans);
else puts("Oh,it's impossible~!!");
}
return 0;
}

POJ1830(异或高斯消元)的更多相关文章

  1. POJ 1222【异或高斯消元|二进制状态枚举】

    题目链接:[http://poj.org/problem?id=1222] 题意:Light Out,给出一个5 * 6的0,1矩阵,0表示灯熄灭,反之为灯亮.输出一种方案,使得所有的等都被熄灭. 题 ...

  2. poj1830开关问题——异或高斯消元

    题目:http://poj.org/problem?id=1830 根据题意,构造出n元方程组: a(1,1)x1 ^ a(1,2)x2 ^ a(1,3)x3 ... a(1,n)xn = st1 ^ ...

  3. SGU 260.Puzzle (异或高斯消元)

    题意: 有n(<200)个格子,只有黑白两种颜色.可以通过操作一个格子改变它和其它一些格子的颜色.给出改变的关系和n个格子的初始颜色,输出一种操作方案使所有格子的颜色相同. Solution: ...

  4. Luogu3164 CQOI2014 和谐矩阵 异或高斯消元

    传送门 题意:给出$N,M$,试构造一个$N \times M$的非全$0$矩阵,其中所有格子都满足:它和它上下左右四个格子的权值之和为偶数.$N , M \leq 40$ 可以依据题目中的条件列出有 ...

  5. poj1830 开关问题[高斯消元]

    其实第一反应是双向BFS或者meet in middle,$2^{14}$的搜索量,多测,应该是可以过的,但是无奈双向BFS我只写过一题,已经不会写了. 发现灯的操作情况顺序不影响结果,因为操作相当于 ...

  6. BZOJ.1923.[SDOI2010]外星千足虫(高斯消元 异或方程组 bitset)

    题目链接 m个方程,n个未知量,求解异或方程组. 复杂度比较高,需要借助bitset压位. 感觉自己以前写的(异或)高斯消元是假的..而且黄学长的写法都不需要回代. //1100kb 324ms #i ...

  7. SGU 275 To xor or not to xor(高斯消元)

    题意: 从n个数中选若干个数,使它们的异或和最大.n<=100 Solution 经典的异或高斯消元. //O(60*n) #include <iostream> using nam ...

  8. 高斯消元 & 线性基【学习笔记】

    高斯消元 & 线性基 本来说不写了,但还是写点吧 [update 2017-02-18]现在发现真的有好多需要思考的地方,网上很多代码感觉都是错误的,虽然题目通过了 [update 2017- ...

  9. bzoj 3503: [Cqoi2014]和谐矩阵【高斯消元】

    如果确定了第一行,那么可以推出来整个矩阵,矩阵合法的条件是n+1行全是0 所以推出来n+1行和1行的关系,然后用异或高斯消元来解即可 #include<iostream> #include ...

随机推荐

  1. hdmap相关

    图片来源:https://vires.com/ 新闻摘抄: 对此,武汉光庭信息技术股份有限公司副总经理罗跃军告诉记者:“事实上,最初由自动驾驶车身控制系统协会所提出的地图精度要求很高,需要达到5cm甚 ...

  2. js 阿拉伯数字转转汉字

    js:(单纯的转汉字,没有个.十.千.万,待我日后完善) var number = 323413290907; var N = [ "零", "一", &quo ...

  3. Laravel的三种安装方法总结

    Laravel号称巨匠级PHP框架,越来越多的PHPer选择它作为开发框架,作为一个Laravel初学者相信很多人向我一样被安装挡在了门外.所以今天结合文档和自己的学习经历总结一下Laravel的安装 ...

  4. Vue项目屏幕自适应方案

    安装lib-flexible cnpm i lib-flexible -D Vue项目引入 lib-flexible. main.js: import 'lib-flexible/flexible' ...

  5. 解析Monte-Carlo算法(基本原理,理论基础,应用实践)

    引言 最近在和同学讨论研究Six Sigma(六西格玛)软件开发方法及CMMI相关问题时,遇到了需要使用Monte-Carlo算法模拟分布未知的多元一次概率密度分布问题.于是花了几天时间,通过查询相关 ...

  6. 分布式环境下的session管理

    一.分布式Session的几种实现方式 1.1.基于cookie 进行session共享 简单.方便,每次通过判断cookie中的用户状态信息判断用户的登录状态:但是用户信息要存在客户端,存在安全隐患 ...

  7. 数据字典生成工具(生成Excel, Word,PDF,html)

    转自:http://www.cnblogs.com/yanweidie/p/3838765.html 数据字典生成工具之旅系列文章导航 数据字典生成工具之旅系列文章导航 宣传语 数据字典生成工具.数据 ...

  8. Linux运行Tomcat下的war文件

    1.查看Tomcat进程: ps -ef |grep tomcat 2.关闭Tomcat进程: kill -9 pid 3.关闭Tomcat运行: bin目录下执行 ./shutdown.sh 4. ...

  9. Jmeter JDBC Request 中文乱码问题

    在JDBC Request的SQL Query的编辑器输入中文会乱码,导入插入数据库的内容也是乱码,如下图 解决办法:JDBC Connection Configuration的Database UR ...

  10. 删除win7快捷方式小箭头

    删除win7快捷方式小箭头 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Sh ...