题目链接

题意:中文题,和上篇博客POJ 1222是一类题。

题解:如果有解,解的个数便是2^(自由变元个数),因为每个变元都有两种选择。

代码:

#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
using namespace std;
int s[],e[],g[][],n;
int gauss()
{
int row,col;
for(row=,col=;row<n&&col<n;col++)
{
int id=row;
for(int i=row;i<n;i++)
if(g[i][col]) id=i;
if(g[id][col])
{
for(int k=col;k<=n;k++)
swap(g[id][k],g[row][k]);
for(int i=row+;i<n;i++)
if(g[i][col])
for(int k=col;k<=n;k++)
g[i][k]^=g[row][k];
row++;
}
}
for(int i=row;i<n;i++)
if(g[i][n]) return -;
return <<(n-row);
}
int main()
{
//注意一定不要在主函数里定义n 这样会在输入的时候覆盖全局变量n
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
memset(g,,sizeof(g));
for(int i=;i<n;i++)
scanf("%d",&s[i]);
for(int i=;i<n;i++)
{
scanf("%d",&e[i]);
g[i][n]=s[i]^e[i];
g[i][i]=;
}
int a,b;
for(;;)
{
scanf("%d%d",&a,&b);
if(a==&&b==) break;
//这里注意题目中的下标是从1开始的
//而且ab不能写反 至于为什么不能写反还不清楚
g[b-][a-]=;
}
int ans=gauss();
if(ans==-)
puts("Oh,it's impossible~!!");
else
printf("%d\n",ans);
}
return ;
}

POJ 1830 开关问题 (高斯消元)的更多相关文章

  1. POJ 1830 开关问题 高斯消元,自由变量个数

    http://poj.org/problem?id=1830 如果开关s1操作一次,则会有s1(记住自己也会变).和s1连接的开关都会做一次操作. 那么设矩阵a[i][j]表示按下了开关j,开关i会被 ...

  2. POJ 1830 开关问题 [高斯消元XOR]

    和上两题一样 Input 输入第一行有一个数K,表示以下有K组测试数据. 每组测试数据的格式如下: 第一行 一个数N(0 < N < 29) 第二行 N个0或者1的数,表示开始时N个开关状 ...

  3. POJ.1830.开关问题(高斯消元 异或方程组)

    题目链接 显然我们需要使每个i满足\[( ∑_{j} X[j]*A[i][j] ) mod\ 2 = B[i]\] 求这个方程自由元Xi的个数ans,那么方案数便是\(2^{ans}\) %2可以用^ ...

  4. POJ 3185 The Water Bowls 【一维开关问题 高斯消元】

    任意门:http://poj.org/problem?id=3185 The Water Bowls Time Limit: 1000MS   Memory Limit: 65536K Total S ...

  5. POJ - 1681: Painter's Problem (开关问题-高斯消元)

    pro:开关问题,同上一题. 不过只要求输出最小的操作步数,无法完成输出“inf” sol:高斯消元的解对应的一组合法的最小操作步数. #include<bits/stdc++.h> #d ...

  6. POJ - 1222: EXTENDED LIGHTS OUT (开关问题-高斯消元)

    pro:给定5*6的灯的状态,如果我们按下一个灯的开关,它和周围4个都会改变状态.求一种合法状态,使得终状态全为关闭: sol:模2意义下的高斯消元. 终于自己手打了一个初级板子. #include& ...

  7. A - The Water Bowls POJ - 3185 (bfs||高斯消元)

    题目链接:https://vjudge.net/contest/276374#problem/A 题目大意:给你20个杯子,每一次操作,假设当前是对第i个位置进行操作,那么第i个位置,第i+1个位置, ...

  8. POJ 1166 The Clocks 高斯消元 + exgcd(纯属瞎搞)

    依据题意可构造出方程组.方程组的每一个方程格式均为:C1*x1 + C2*x2 + ...... + C9*x9 = sum + 4*ki; 高斯消元构造上三角矩阵,以最后一个一行为例: C*x9 = ...

  9. POJ 2065 SETI(高斯消元)

    题目链接:http://poj.org/problem?id=2065 题意:给出一个字符串S[1,n],字母a-z代表1到26,*代表0.我们用数组C[i]表示S[i]经过该变换得到的数字.给出一个 ...

随机推荐

  1. notepad++和sublime 常用插件及主题

    sublime: 常用主题有: Pastels on Dark Monokai Zenburnsque 常用插件有 Anaconda Package Control Side Bar ConvertT ...

  2. 支付安全基础 —— HTTPS的故事

     本文主要讲述了HTTPS的基本原理,通过HTTPS握手过程.证书链.中间人攻击.CA机构等问题,详细解释了百付宝系统中用到的HTTPS安全知识,同时,介绍了如何查看www.baifubao.com的 ...

  3. Inno Step 安装包程序 写INI配置文件脚本

    [INI]Filename: "{app}\Config\config.ini"; Section: "config";Key: "name" ...

  4. redis-string-统计

    package com.ztest.redis.string; import org.junit.Test; import redis.clients.jedis.Jedis; import com. ...

  5. ajax访问 aspx.cs后台

    --前台$.ajax({ type: "POST", contentType: "application/json", url: "WebForm2. ...

  6. iOS开发——高级篇——iOS键盘的相关设置(UITextfield)

    一.键盘风格 UIKit框架支持8种风格键盘. typedef enum { UIKeyboardTypeDefault, // 默认键盘:支持所有字符 UIKeyboardTypeASCIICapa ...

  7. Linux之Shell脚本计算命令行的所有和

    问题:设计一个Shell脚本:求命令行上所有整数和 Shell代码: 调用add.sh脚本结果:

  8. OpenCV成长之路(3):模仿PhotoShop中魔术棒工具

    本文的主题实际上是图像的颜色空间的转换,借助一个颜色选取程序来说明OpenCV中颜色转换函数的用法以及一些注意事项. 一.几种常见的颜色空间: RGB颜色空间:RGB采用加法混色法,因为它是描述各种“ ...

  9. 4-python学习——数据操作

    4-python学习--数据操作 参考python类型转换.数值操作(收藏) Python基本运算符 数据类型转换: 有时候,可能需要执行的内置类型之间的转换.类型之间的转换,只需使用类名作为函数. ...

  10. 泛型约束 where T : class,new()

    假如有这样一个方法签名 public List<T> GetSomethingList<T> (int a,int b,string c) where T:class,new( ...