高斯消元(xor方程组)模板
来源:互联网 发布:淘宝用绒里图片 编辑:程序博客网 时间:2024/05/01 12:21
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cstdlib>using namespace std;const int inf=0x3f3f3f3f;template <typename T>inline void _read(T& x){ char ch=getchar();bool sign=true; while(!isdigit(ch)){if(ch=='-')sign=false;ch=getchar();} for(x=0;isdigit(ch);ch=getchar())x=x*10+ch-'0'; if(!sign)x=-x;}int n,m;int N;int cnt=0;int sum=0;int minn;int map[55][55];int id[55][55];int num[2005];int ans[2005];int dx[5]={0,1,0,-1,0};int dy[5]={1,0,-1,0,0};int a[2005][2005];void dfs(int x,int var){int i,j,k;if(x==0&&var==0){cnt=0;for(i=1;i<=N;i++)cnt+=ans[i];minn=min(minn,cnt);return;}if(num[x]==var){ans[var]=a[x][N+1];for(i=var+1;i<=N;i++)ans[var]^=(a[x][i]&ans[i]);dfs(x-1,var-1);}else{ans[var]=1;dfs(x,var-1);ans[var]=0;dfs(x,var-1);}}void gauss(int equ,int var){int i,j,k,h,maxn;for(i=1,j=1;i<=equ&&j<=var;i++,j++){maxn=i;for(k=i+1;k<=equ;k++){if(a[maxn][j]<a[k][j])maxn=k;if(a[maxn][j]==1)break;}if(maxn!=i){for(k=j;k<=var+1;k++)swap(a[i][k],a[maxn][k]);}num[i]=j;if(a[i][j]==0){i--;continue;}for(k=i+1;k<=equ;k++){if(a[k][j]!=0){for(h=j;h<=var+1;h++){a[k][h]^=a[i][h];}}}}for(k=i;k<=equ;k++){if(a[k][var+1]!=0){puts("inf");return;}}if(i==var+1){for(i=var;i;i--){ans[i]=a[i][var+1];for(j=i+1;j<=var;j++){ans[i]^=(a[i][j]&ans[j]);}sum+=ans[i];}cout<<sum;return;}minn=inf;dfs(i-1,var);cout<<minn;return;}int main(){int i,j,k;cin>>n;N=n*n;for(i=1;i<=n;i++){for(j=1;j<=n;j++){id[i][j]=++cnt;}}for(i=1;i<=n;i++){for(j=1;j<=n;j++){char ch=getchar();while(!isalpha(ch))ch=getchar();if(ch=='w'){map[i][j]=1;a[id[i][j]][N+1]=1;}}}for(i=1;i<=n;i++){for(j=1;j<=n;j++){for(k=0;k<5;k++){int tx=i+dx[k];int ty=j+dy[k];if(tx<1||tx>n||ty<1||ty>n)continue;a[id[i][j]][id[tx][ty]]=1;}}}gauss(N,N);}
0 0
- 高斯消元(xor方程组)模板
- 解方程组(高斯消元模板)
- BZOJ2115: [Wc2011] Xor(异或方程组)
- 【高斯消元解xor方程组】poj1830
- Poj1830 高斯消元法解Xor方程组
- [模板]高斯消元,异或方程组
- [省选前题目整理][POJ 1830]开关问题(XOR方程组高斯消元)
- 【BZOJ 3503】 [Cqoi2014]和谐矩阵|高斯消元|xor方程组
- 【高斯消元解XOR方程组】各种题
- 高斯消元模板(+解异或方程组)
- 文章标题 高斯消元解方程组(模板)
- 【bzoj1923】[Sdoi2010]外星千足虫 高斯消元解xor方程组
- 【BZOJ1923】外星千足虫,高斯消元解xor方程组
- [BZOJ]5001: 搞事情 高斯消元解xor方程组
- 高斯消元法解异或方程组 模板
- 高斯消元解异或方程组 模板
- 约瑟夫环and同余方程组模板(exgcd求解同余方程组)
- C++——高斯消元模板——解方程组
- KISSY基础篇乄KISSY之Event
- 冒泡排序
- 实习每日总结_20161213
- github使用简介
- 一个过时的组件---ActionBar
- 高斯消元(xor方程组)模板
- Storm——2、Storm原生API编程、并发机制、可靠性与DRPC详解
- 解决vim没有颜色的办法
- 【NOIP2017提高组模拟12.10】幻魔皇
- 直接排序,冒泡排序,二分法排序(折半排序)
- HTC 拉抽屉效果(VRTK)
- 插入排序和选择排序
- java中数组和集合的相互转换
- JavaWeb_使用Servlet + HttpSession实现简单用户登陆