[poj1830]开关问题(高斯消元)
2024-08-23 21:16:52
题意:求高斯消元中自由元的个数,输出1<<ans;
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=;
int a[N][N],ans[N];
int T,n,x,nn;
int gauss(int nn){
int i,j,k,l;
for(i=,j=;i<=nn&&j<=nn;j++){
for(k=i;k<=nn;k++)if(a[k][j])break;
if(a[k][j]){
for(l=;l<=nn+;l++)swap(a[i][l],a[k][l]);
for(l=;l<=nn;l++){
if(l!=i&&a[l][j])for(k=;k<=nn+;k++)a[l][k]^=a[i][k];
}
i++;
}
}
for(j=i;j<=nn;j++)if(a[j][n+])return -;
return <<(n-i+);
} int main(){
scanf("%d",&T);
while(T--){
memset(a,,sizeof a);
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d",&a[i][n+]);
for(int i=;i<=n;i++)scanf("%d",&x),a[i][n+]^=x;
int tx,ty;
while(scanf("%d%d",&tx,&ty)&&(tx||ty))a[ty][tx]=;//注意
for(int i=;i<=n;i++)a[i][i]=;
int ans=gauss(n);
if(ans==-)printf("Oh,it's impossible~!!\n");
else printf("%d\n",ans);
}
return ;
}
最新文章
- 关于input标签和placeholder在IE8,9下的兼容问题
- spring发送邮件(多人接收或抄送多少带附件发送)
- 基于easyui的验证扩展
- Xcode Coule not launch ";aaa"; press launch failed:timed out waiting for app launch
- Codeforces Round #256 (Div. 2) D. Multiplication Table 二分法
- 纯css实现翻牌特效
- JSP第三篇【JavaBean的介绍、JSP的行为--JavaBean】
- Linux快速搭建FTP服务器
- Spring Boot SSL
- (贪心 优先队列)P1090合并果子 洛谷
- string.Empty, ";"; 和 null 三者的区别
- 剑指offer-反向遍历链表-栈和递归2种方法(一次性跑通)
- 移动构造函数(c++11)
- BIOS和CMOS【转载】
- 字符加密 cipher
- Holt-Winters模型原理分析
- Maven学习(七)-----Maven添加远程仓库
- sql: Compare Tables
- 在控制台中操作MYSQL数据库步骤以及一些小问题
- 【Python】Python中*args 和**kwargs的用法
热门文章
- 通过srvctl add命令添加database信息到srvctl管理器
- HDU 1452 Happy 2004(唯一分解定理)
- PHP CURL 中文说明
- C#中特性,以及应用场景(收藏链接)
- HDU 5247 找连续数 (set妙用)
- argument python 参数 举例
- (转)source insight 窗口嵌入
- SQL 中GROUP BY 、ROLLUP、CUBE 关系和区别
- Java for LeetCode 108 Convert Sorted Array to Binary Search Tree
- spring-boot-starter-parent