poj 1830 高斯消元
终于会一点高斯消元了,认真学还是学的进去啊。。。。。。
搞明白解异或方程的原理,然后构造出矩阵就好做了。模板题
![](/assets/blank.gif)
![](/assets/blank.gif)
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <stack> 5 #include <queue> 6 #include <map> 7 #include <algorithm> 8 #include <vector> 9 #include <cstdlib> 10 11 using namespace std; 12 13 const int maxn = 1000005; 14 15 typedef long long LL; 16 17 int A[35][35]; 18 19 int gauss(int m,int n) //m个方程,n个变量 20 { 21 int i=0,j=0,k,r,u; 22 while(i < m && j <n ){ //当前处理i个方程j个变量 23 r = i; 24 for(k = i;k < m;k++){ 25 if(A[k][j]){ 26 r = k; 27 break; 28 } 29 } 30 if(A[r][j]){ 31 if(r != i){ 32 for(k = 0;k <= n;k++) swap(A[r][k],A[i][k]); 33 } 34 for(u = i+1;u < m;u++){ 35 if(A[u][j]) for(k = i;k <= n;k++) A[u][k] ^= A[i][k]; 36 } 37 i++; 38 } 39 j++; 40 41 } 42 for(j = i;j<n;j++){ 43 if(A[j][n]) return -1; 44 } 45 return n-i; 46 } 47 48 int main() 49 { 50 int t; 51 scanf("%d",&t); 52 int s[35],e[35]; 53 while(t--){ 54 memset(A,0,sizeof(A)); 55 memset(s,0,sizeof(s)); 56 memset(e,0,sizeof(e)); 57 int n; 58 scanf("%d",&n); 59 for(int i=0;i<n;i++){ 60 scanf("%d",&s[i]); 61 } 62 for(int i=0;i<n;i++){ 63 scanf("%d",&e[i]); 64 } 65 for(int i=0;i<n;i++){ 66 if(s[i] != e[i]) 67 A[i][n] =1; 68 A[i][i] = 1; 69 } 70 int a,b; 71 while(scanf("%d%d",&a,&b)&&a+b){ 72 a--; 73 b--; 74 A[b][a] = 1; 75 } 76 int ans = gauss(n,n); 77 if(ans == -1) puts("Oh,it's impossible~!!"); 78 else printf("%d\n",1<<ans); 79 80 } 81 return 0; 82 }
View Code
转载于:https://www.cnblogs.com/lmlyzxiao/p/4944070.html
poj 1830 高斯消元相关推荐
- 开关问题 POJ - 1830 高斯消元
开关问题 POJ - 1830 有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变 ...
- POJ 1681 高斯消元 枚举自由变元
题目和poj1222差不多,但是解法有一定区别,1222只要求出任意一解,而本题需要求出最少翻转次数.所以需要枚举自由变元,变元数量为n,则枚举的次数为1<<n次 #include < ...
- POJ 1753 Flip Game 高斯消元
和1222,1681差不多 POJ 1222 高斯消元更稳 POJ 1681 高斯消元 枚举自由变元 equ = 16 ,var = 16的方程组 #include <cstdio> #i ...
- POJ 1222 1681 1830 3185 开关灯问题 (高斯消元 异或方程组)
POJ 1222 EXTENDED LIGHTS OUT 基本的开关灯问题.还保证唯一解. 我们把每一个灯泡当成一个状态xi,总共有30个,而且每个灯与其他灯的关系也很明显.所以我们就可以列30方程3 ...
- POJ 1830 开关问题 【01矩阵 高斯消元】
任意门:http://poj.org/problem?id=1830 开关问题 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1 ...
- poj 1830 开关问题 高斯消元
题目链接 高斯消元模板, 判断是否有解以及变元的数量. 1 #include <iostream> 2 #include <vector> 3 #include <cst ...
- POJ 1830 开关问题 高斯消元
题意:给你N个开关,其中某些开关之间是相互影响的,即一个开关控制多个,那么每个开关操作与否为一个变元,有N个变元,开关之间相互影响的系数设为1,否则为0,对模2高斯消元求解自由变元个数. #inclu ...
- poj 1681 Painter#39;s Problem(高斯消元)
http://poj.org/problem? id=1681 求最少经过的步数使得输入的矩阵全变为y. 思路:高斯消元求出自由变元.然后枚举自由变元,求出最优值. 注意依据自由变元求其它解及求最优值 ...
- POJ 1222 EXTENDED LIGHTS OUT(高斯消元)
[题目链接] http://poj.org/problem?id=1222 [题目大意] 给出一个6*5的矩阵,由0和1构成,要求将其全部变成0,每个格子和周围的四个格子联动,就是说,如果一个格子变了 ...
最新文章
- Go 函数特性和网络爬虫示例
- 具体解释Android中AsyncTask的使用
- java 获取远程文件_java获取远程文件
- activiti7流程设计器_消防水泵结合器怎么安装,水泵结合器安装工艺分享
- LeetCode(136)——只出现一次的数字(JavaScript)
- php declaration of,PHP 7.2中的新功能(参数类型声明)
- HDU 1712 ACboy needs your help(简单分组DP)
- Java课程设计【学生信息管理系统】
- 车间调度建模系列4|扩展析取图之工序相关性
- 简单返回顶部代码及注释说明
- 高德地图POI数据爬取
- 数据密集型系统设计pdf下载
- cboard centos7安装步骤
- 一维码Code 128简介及其解码实现 zxing-cpp
- 记一次编写刷浏览量,刷查看次数脚本(内附代码)
- 用计算机怎么计算税率表,个税计算器2016年税率表公式
- unity -- 存档与读档
- IText_根据模板导出PDF(文字、表格、图片)
- python调用scp上传目录_python执行scp命令拷贝文件及文件夹到远程主机的目录方法...
- win10多用户同时远程桌面登陆(允许多个RDP会话)-支持win10最新1909版2004版