和1222,1681差不多

POJ 1222 高斯消元更稳

POJ 1681 高斯消元 枚举自由变元

equ = 16 ,var = 16的方程组

#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#define INF 1e9
using namespace std;const int maxn = 20;
int a[maxn][maxn];
int x[maxn],fre[maxn];
int dx[]= {0,0,-1,0,1};
int dy[]= {0,-1,0,1,0};void debug(int n)
{for(int i=0; i<n; i++){for(int j=0; j<n; j++)printf("%d ", a[i][j]);printf("  %d\n", a[i][n]);}puts("**************************************************************");
}void init()
{memset(a,0,sizeof(a));for(int i=0; i<4; i++)for(int j=0; j<4; j++)for(int k=0; k<5; k++){int nx = i+dx[k];int ny = j+dy[k];if(nx>=0 && nx <4 && ny>=0 && ny<4) a[i*4+j][nx*4+ny] = 1;}
}int Guass(int equ,int var)
{
//    debug(16);int row,col,num;num=row=col=0;while(row<equ && col<var){//列非零主int r=row;for(int i=row; i<equ; i++)if(a[i][col]!=0){r=i;break;}if(r!=row){for(int j=col; j<var+1; j++)swap(a[row][j],a[r][j]);}if(a[row][col]==0)//说明有自由变元
        {fre[num++] = col;col++;continue;}//消元for(int i=row+1; i<equ; i++){if(a[i][col]==0) continue;for(int j=col; j<var+1; j++)a[i][j]^=a[row][j];}
//        debug(16);row++;col++;}for(int i=row; i<equ; i++)if(a[i][var]!=0) return INF;int sta=1<<(col-row);//自由变元有col-row个int res=INF;for(int k=0; k<sta; k++) //枚举所有变元
    {int cnt=0;int index=k;for(int j=0; j<num; j++){x[fre[j]]=(index&1);if(x[fre[j]]) cnt++;index>>=1;}for(int i=row-1; i>=0; i--){x[i]=a[i][var];for(col=i+1; col<var; col++)x[i]^=(a[i][col]*x[col]);if(x[i])cnt++;}res=min(cnt,res);}return res;
}int main()
{
//    freopen("in.txt","r",stdin);char s[10][10];for(int i=0; i<4; i++)scanf("%s", s[i]);init();for(int i=0; i<4; i++)for(int j=0; j<4; j++)a[i*4+j][16] = (s[i][j]=='b'? 0:1);int ans1 = Guass(16,16);init();for(int i=0; i<4; i++)for(int j=0; j<4; j++)a[i*4+j][16] = (s[i][j]=='w'? 0:1);int ans2 = Guass(16,16);if(min(ans1,ans2) == INF) puts("Impossible");else printf("%d\n", min(ans1, ans2));return 0;
}

转载于:https://www.cnblogs.com/pach/p/7300179.html

POJ 1753 Flip Game 高斯消元相关推荐

  1. poj 1753 Flip Game 高斯消元 异或方程组 求最值

    题目链接:http://poj.org/problem?id=1753 题意:给出一张4*4的图,表示16个方格的初始颜色的情况(白或黑),相邻方格操作的时候会相互影响,求最少的操作次数,使得每个方格 ...

  2. POJ 2947 Widget Factory (高斯消元解同余方程组)

    题意:N种物品,M条记录,接写来M行,每行有K,str1,str2,表示第i个记录从星期str1到星期str2,做了K件物品,接下来的K个数为物品的编号.求做每个物品所需的时间,并且最后结果在3-9之 ...

  3. poj 1830 开关问题 高斯消元

    题目链接 高斯消元模板, 判断是否有解以及变元的数量. 1 #include <iostream> 2 #include <vector> 3 #include <cst ...

  4. POJ 1830 开关问题 高斯消元

    题意:给你N个开关,其中某些开关之间是相互影响的,即一个开关控制多个,那么每个开关操作与否为一个变元,有N个变元,开关之间相互影响的系数设为1,否则为0,对模2高斯消元求解自由变元个数. #inclu ...

  5. poj 1681 Painter#39;s Problem(高斯消元)

    http://poj.org/problem? id=1681 求最少经过的步数使得输入的矩阵全变为y. 思路:高斯消元求出自由变元.然后枚举自由变元,求出最优值. 注意依据自由变元求其它解及求最优值 ...

  6. POJ 1222 EXTENDED LIGHTS OUT(高斯消元)

    [题目链接] http://poj.org/problem?id=1222 [题目大意] 给出一个6*5的矩阵,由0和1构成,要求将其全部变成0,每个格子和周围的四个格子联动,就是说,如果一个格子变了 ...

  7. POJ 1222 1681 1830 3185 开关灯问题 (高斯消元 异或方程组)

    POJ 1222 EXTENDED LIGHTS OUT 基本的开关灯问题.还保证唯一解. 我们把每一个灯泡当成一个状态xi,总共有30个,而且每个灯与其他灯的关系也很明显.所以我们就可以列30方程3 ...

  8. 高斯消元 zoj 3645 poj 1222/XOR消元

    double a[maxn][maxn] , x[maxn] ; //a[i][j] 系数矩阵 , a[i][n+1] = y[i] , x解 int n ; //n个方程 void guass(){ ...

  9. 开关问题 POJ - 1830 高斯消元

    开关问题 POJ - 1830 有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变 ...

最新文章

  1. Java---Socket编程UDP/TCP
  2. Go实现简单的K-V存储
  3. 查看suse系统版本
  4. Oracle 中的SID是什么意思?有什么作用?
  5. pycharm+python+bootstrap写一个登陆界面_Python--day56(前后台数据交互、bootstrap)
  6. C语言实现并查集(Disjoint set或者Union-find set)(附完整源码)
  7. 服务器自检后显示scsi,请问一下,如何检测SCSI +RAID 5设置是否正确??
  8. 数据库杂谈(三)——关系代数
  9. “npm ERR! code ELIFECYCLE npm ERR! errno 1”问题
  10. php 图像居中裁剪函数,PHP 实现的自定义图像居中裁剪函数示例
  11. Android NDK开发(1)----- Java与C互相调用实例详解
  12. c# word 在当前光标位置插入内容
  13. java fop_java – 未找到类FOP
  14. 快速使用easy rule
  15. [可解释机器学习]Task07:LIME、shap代码实战
  16. 电脑重装系统按哪个键进入u盘启动项
  17. python scripting for arcgis_Python Scripting for ArcGIS Pro
  18. 你为什么会选择做程序员?
  19. (导数)微分与积分的概念
  20. 1 软件需求的本质(1)

热门文章

  1. dtrace-stap-book
  2. Powershell管理系列(三十一)PowerShell操作之批量创建邮箱
  3. java桌面应用程序打包为exe
  4. 【转载】ARX给CAD发送命令的几种方法
  5. BZOJ1010 [HNOI2008]玩具装箱toy 动态规划 斜率优化
  6. linux设置永久别名
  7. Winform 打印PDF顺序混乱,获取打印队列
  8. 浅谈UML的概念和模型之UML视图
  9. 解析高校网络管理员如何制作网络电视墙
  10. 最新web 2.0 配色 (一)