Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
搜索也没过,哪位有数据吗#include<iostream> #include<cmath> using namespace std; #define N 4 int minCount = 100000; int map[N][N]; bool isFinish(); void output(){ int i,j; for(i=0;i<N;i++){ for(j=0;j<N;j++){ cout<<map[i][j]; } cout<<endl; } } void roll(int i){ int column,row,pianyi_x,pianyi_y; column = i % N; row = i / N; // system("pause"); // printf("(%d,%d)\n",row, column); // cout<<"("<<i<<")"<<endl; pianyi_x = row; pianyi_y = column ; if(pianyi_x>=0 && pianyi_x<N && pianyi_y>=0 && pianyi_y<N){ map[pianyi_x][pianyi_y] = ~map[pianyi_x][pianyi_y]; } pianyi_x = row - 1; pianyi_y = column ; if(pianyi_x>=0 && pianyi_x<N && pianyi_y>=0 && pianyi_y<N){ map[pianyi_x][pianyi_y] = ~map[pianyi_x][pianyi_y]; } pianyi_x = row + 1; pianyi_y = column; if(pianyi_x>=0 && pianyi_x<N && pianyi_y>=0 && pianyi_y<N){ map[pianyi_x][pianyi_y] = ~map[pianyi_x][pianyi_y]; } pianyi_x = row ; pianyi_y = column - 1; if(pianyi_x>=0 && pianyi_x<N && pianyi_y>=0 && pianyi_y<N){ map[pianyi_x][pianyi_y] = ~map[pianyi_x][pianyi_y]; } pianyi_x = row ; pianyi_y = column + 1; if(pianyi_x>=0 && pianyi_x<N && pianyi_y>=0 && pianyi_y<N){ map[pianyi_x][pianyi_y] = ~map[pianyi_x][pianyi_y]; } // output(); } int changeOne(int start,int cnt){ int i,column,row,pianyi_x,pianyi_y; for(i=start; i< N*N; i++){ roll(i); cnt++; if(isFinish()==true){ if(minCount>cnt) minCount = cnt; } else{ cnt = changeOne(i+1,cnt); } roll(i); cnt--; } return cnt; } bool isFinish(){ int i,j; for(i=0; i<N; ++i){ for(j=0; j<N; ++j){ if( map[i][j]==0 ) return false; } } return true; } int main() { int i,j; char aChar; for(i = 0;i < N ; i++ ){ for(j = 0 ; j < N ; j++){ cin>>aChar; if( aChar=='b'){ map[i][j] = -1; } else { map[i][j] = 0; } } }//input over // output(); if( isFinish()== true) printf("0\n"); else{ // cout<<changeOne(0,0)<<endl; changeOne(0,0); if(minCount!=100000) printf("%d",minCount); else printf("Impossible"); } system("pause"); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator