Uvalive 6832 Bit String Reordering
2015-09-09 18:35
363 查看
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int N,M,ans,n1,n2,m1,m2,fi,minn; //n1 stand for the number of zero //n2 stand for the number of one int a[20],b[20],c[20],d[20]; bool vis[20]; void fun(){ ans=0; memset(vis,false,sizeof(vis)); for(int i=0;i<N;i++) d[i]=a[i]; for(int i=0;i<N;i++){ if(d[i]==c[i]) continue; for(int j=i+1;j<N;j++){ if(c[j]!=c[i]&&c[j]!=d[j]&&!vis[j]){ d[i]=c[i]; d[j]=c[j]; ans+=(j-i); vis[i]=true; vis[j]=true; //test /* for(int k=0;k<N;k++) printf("%d ",d[k]); printf("\n"); */ break; } } } } int main(){ while(scanf("%d%d",&N,&M)!=EOF){ minn=9999999; n1=n2=m1=m2=0; for(int i=0;i<N;i++){ scanf("%d",&a[i]); if(a[i]==0) n1++; else n2++; } for(int i=0;i<M;i++){ scanf("%d",&b[i]); if(i%2) m2+=b[i]; else m1+=b[i]; } //printf("%d %d %d %d\n",n1,n2,m1,m2); if(n1>n2){ if(m1>m2) fi=0; else fi=1; } else if(n1<n2){ if(m1<m2) fi=0; else fi=1; } if(n1!=n2){ //printf("fi=%d\n",fi); for(int i=0,j=0;j<M;j++){ for(int k=0;k<b[j];k++){ c[i+k]=fi; } fi=(fi+1)%2; i+=b[j]; } //test /* for(int i=0;i<N;i++){ printf("%d ",c[i]); } printf("\n"); */ fun(); minn=min(ans,minn); } else{ fi=0; for(int i=0,j=0;j<M;j++){ for(int k=0;k<b[j];k++){ c[i+k]=fi; } fi=(fi+1)%2; i+=b[j]; } fun(); minn=min(ans,minn); fi=1; for(int i=0,j=0;j<M;j++){ for(int k=0;k<b[j];k++){ c[i+k]=fi; } fi=(fi+1)%2; i+=b[j]; } fun(); minn=min(ans,minn); } printf("%d\n",minn); } }
相关文章推荐
- UVALive 4244 Party Party Party(HDU 2779 && Sicily 1663)
- UVALive 6741 The Sacrificial Firepits
- UVALive 6800 The Mountain of Gold (bellman_ford判负环)
- Uvalive 6398 Low Power
- Uvalive 6929 Sums
- UVALive 5135 - Mining Your Own Business(点双连通)
- UVALive 4287 - Proving Equivalences(强连通分量)
- UVALive 3713 - Astronauts(2-SAT)
- UVALive 3211 - Now or later(2-SAT + 二分)
- UVALive 4727 Jump
- UVALive 3530 Martian Mining
- UVALive 6163 - Myth Busters
- UVALive 2038 Strategic game
- UVALive 4394 String painter
- UVALive 4327 Parade(hdu 2490 Parade)
- UVALive 4015 Caves
- HDU 1665 or UVALive 3263 || That Nice Euler Circuit (欧拉定理求面数 F = E+2-V
- UVALive 4487 Exclusive-OR
- uvalive 2757(贪心)
- uvalive 4324