POJ 1830 高斯消元

原创 2012年03月30日 18:48:18

http://poj.org/problem?id=1830

依旧高斯消元,不解释

方程建立很简单,如果有解,解的个数便是2^(自由变元个数),因为每个变元都有两种选择

/*
ID:cxlove
PROB:poj 1830 开关问题
DATA:2012.3.30
HINT:高斯消元
*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int s[35],e[35],a[35][35],n;
int gauss(){
	int i,j;
	for(i=1,j=1;i<=n&&j<=n;j++){
		int k=i;
		for(;k<=n;k++)
			if(a[k][j])
				break;
		if(a[k][j]){
			for(int r=1;r<=n+1;r++)
				swap(a[i][r],a[k][r]);
			for(int r=1;r<=n;r++)
				if(r!=i&&a[r][j])
					for(k=1;k<=n+1;k++)
						a[r][k]^=a[i][k];
			i++;
		}
	}
	for(j=i;j<=n;j++)
		if(a[j][n+1])
			return -1;
	return 1<<(n-i+1);
}
int main(){
	int t,i,j;
	scanf("%d",&t);
	while(t--){
		scanf("%d",&n);
		memset(a,0,sizeof(a));
		for(i=1;i<=n;i++)
			scanf("%d",&s[i]);
		for(j=1;j<=n;j++){
			scanf("%d",&e[j]);
			if(s[j]!=e[j])
				a[j][n+1]=1;
			a[j][j]=1;
		}			
		while(scanf("%d%d",&i,&j)&&i+j)
			a[j][i]=1;
		int ans=gauss();
		if(ans==-1)
			printf("Oh,it's impossible~!!\n");
		else
			printf("%d\n",ans);
	}
	return 0;
}



【POJ1830】开关问题 高斯消元求自由元

题意:中文题。 题解: 呃,求自由元个数,然后输出1 如果无解输出那个题中给的串。 诶网上代码真不可看,我绝望了决定照自己想法随便写写。 然后49行没压行搞过去了。 网上全是100行+什么心态...
  • Vmurder
  • Vmurder
  • 2015年02月04日 09:55
  • 1605

POJ1830 开关问题

中文题目,就不说题目大意了

POJ 1830 开关问题 高斯消元 异或方程

题意:给出N个开关,当改变一个开关z

[省选前题目整理][POJ 1830]开关问题(XOR方程组高斯消元)

题目链接http://poj.org/problem?id=1830思路很好的一道题。。。 对于nn个开关,我们可以很容易地列出nn个nn元一次方程,每个方程如下: a1x1⊕a2x2⊕a3x3....
  • qpswwww
  • qpswwww
  • 2015年03月25日 14:27
  • 418

POJ 1830|开关问题|高斯消元|异或方程组

自由元有两种取值而且相互不影响,乘法定理可得#include #include #include using namespace std; #define FOR(i,j,k) for(i=j;...

POJ 1830 开关问题 (高斯消元)

开关问题 Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4937   Accepted: 1801 D...

poj 1830 高斯消元模版题

开关问题 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 6067 Accepted: 2309 Desc...

POJ 1830 开关问题(高斯消元)

传送门 开关问题 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 7263 Accepted: 2822 ...

POJ 1830(高斯消元)

过的第一道高斯消元题,继续加油。 #include #include #include #include #include #include #include #include #i...

[poj 1830]开关问题 高斯消元+自由变量枚举

开关问题 Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5407   Accepted:...
  • ahm001
  • ahm001
  • 2014年07月02日 10:00
  • 802
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1830 高斯消元
举报原因:
原因补充:

(最多只允许输入30个字)