标签:des style http color os io strong for ar
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 30805 | Accepted: 13409 |
Description
Input
Output
Sample Input
bwwb bbwb bwwb bwww
Sample Output
4
高斯消元简单题:
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> using namespace std; int a[35][35],x[35]; int equ,var;//方程数和变元数 void Debug() { for(int i=0;i<equ;i++) { for(int j=0;j<=var;j++) printf("%d ",a[i][j]); puts(""); } puts(""); } int gauss() { int max_r,col=0; for(int i=0;i<equ&&col<var;i++,col++) { max_r=i; for(int j=i+1;j<equ;j++) { if(a[j][col]>a[max_r][col]) max_r=j; } if(max_r!=i) { for(int k=0;k<=var;k++) { swap(a[i][k],a[max_r][k]); } } if(a[i][col]==0) { i--; continue; } for(int j=i+1;j<equ;j++) if(i!=j&&a[j][col]) { for(int k=col;k<=var;k++) a[j][k]=a[i][k]^a[j][k]; } } //Debug(); for(int i=equ-4;i<equ;i++) if(a[i][var]) return -1; int ans=100,sum=0; for(int k=0;k<=15;k++) { x[equ-1]=(k&1)>0?1:0;x[equ-2]=(k&2)>0?1:0;x[equ-3]=(k&4)>0?1:0;x[equ-4]=(k&8)>0?1:0; //printf("%d%d%d%d\n",x[equ-1],x[equ-2],x[equ-3],x[equ-4]); sum=0; for(int i=equ-5;i>=0;i--) { int temp=a[i][var]; for(int j=i+1;j<var;j++) { temp-=a[i][j]*x[j]; } x[i]=temp/a[i][i]; } for(int i=0;i<=15;i++) if(x[i]%2!=0) { sum++; } //printf(" sum:%d\n",sum); ans=min(ans,sum); } return ans; } void init() { memset(a,0,sizeof(a)); memset(x,0,sizeof(x)); for(int i=0;i<4;i++) for(int j=0;j<4;j++) { if(i!=0) a[i*4+j][(i-1)*4+j]=1; if(i!=3) a[i*4+j][(i+1)*4+j]=1; if(j!=0) a[i*4+j][i*4+j-1]=1; if(j!=3) a[i*4+j][i*4+j+1]=1; a[i*4+j][i*4+j]=1; } //Debug(); } int main() { equ=var=16; char s[20],t[7]; memset(s,0,sizeof(s)); memset(t,0,sizeof(t)); while(scanf("%s",s)!=EOF) { for(int i=0;i<3;i++) { scanf("%s",t); strcat(s,t); } init(); for(int i=0;i<16;i++) { if(s[i]=='b') a[i][var]=1; else a[i][var]=0; } int ans1=gauss(); init(); for(int i=0;i<16;i++) { if(s[i]=='w') a[i][var]=1; else a[i][var]=0; } int ans2=gauss(); if(ans1!=-1&&ans2!=-1) printf("%d\n",min(ans1,ans2)); else if(ans1!=-1) printf("%d\n",ans1); else if(ans2!=-1) printf("%d\n",ans2); else printf("Impossible\n"); } return 0; }
标签:des style http color os io strong for ar
原文地址:http://blog.csdn.net/knight_kaka/article/details/38797121