7/24
阿新 • • 發佈:2017-07-24
spa har nbsp mon else ios chan end pan
//八皇後 #include<iostream> using namespace std個; #define SIZE 8 char data[SIZE][SIZE]; int ans=0; //bool check(int row,int col){ // for(int i=0;i<row;i++){ // if(data[i][col]==‘*‘)return 0; // for(int j=0;j<SIZE;j++){ // if(i-row==j-col ||i-row==col-j){} // } // } //} voidDFS(int row){ if(row>=8){ ans++; cout<<ans<<endl; for(int i=0;i<SIZE;i++){ for(int j=0;j<SIZE;j++){ cout<<data[i][j]<<‘ ‘; } cout<<endl; } cout<<"--------------------------------------------"<<endl; } for(int col=0;col<SIZE;col++){ int p=1; for(int i=0;i<row;i++){ if(data[i][col]==‘*‘)p=0; for(int j=0;j<SIZE;j++){ if((row-i==col-j|| row-i==j-col) && data[i][j]==‘*‘){ p=0; } } }if(p==1){ data[row][col]=‘*‘; DFS(row+1); data[row][col]=‘#‘; } } } int main(){ for(int i=0;i<SIZE;i++){ for(int j=0;j<SIZE;j++){ data[i][j]=‘#‘; } } DFS(0); return 0; }
//油田 #include<iostream> using namespace std; #define SIZE 100 char data[SIZE][SIZE]; int n,m; int ans=0; int dir[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}}; void DFS(int x,int y){ data[x][y]=‘*‘; for(int i=0;i<8;i++){ int newx=x+dir[i][0]; int newy=y+dir[i][1]; if( newx>=0 && newx<n && newy>=0 && newy<m && data[newx][newy]==‘@‘){ DFS(newx,newy); } } } int main(){ //freopen("input.txt","r",stdin); while(1){ cin>>n>>m; if(n==0 || m==0)break; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>data[i][j]; } } /* for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cout<<data[i][j]<<‘ ‘; } cout<<endl; }*/ for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(data[i][j]==‘@‘){ DFS(i,j); ans++; } } } cout<<ans<<endl; ans=0; } return 0; }
//#include<iostream> //using namespace std; //#define SIZE 30 //int map[SIZE][SIZE]; //int color[SIZE]; //int n; //int mincolor=1000; //bool ok(int x,int c){ // for(int i=0;i<n;i++){ // if(map[x][i]==1 && c==color[i]){ // return false;//相鄰節點顏色相同 // // } // return true; // } //} //void DFS(int x ,int curcolor){ // if(x>=n){ // mincolor=mincolor>curcolor?curcolor:mincolor; // return; // } // int c=color[x]; // for(c=1;c<=curcolor;++c){ // if(ok(x,c)){ // DFS(x+1,curcolor); // } // } // DFS(x+1,curcolor+1); //} //int main(){ // while(cin>>n && n){ // char str[SIZE]; // for(int i=0;i<n;i++){ // scanf("%s",str); // for(int j=2;str[j]!=‘\0‘;j++){ // map[str[0]-‘A‘][str[j]-‘A‘]=1; // } // } // color[0]=1; // DFS(1,1); // if(mincolor==1)cout<<"1 channel needed."<<endl; // else cout<<mincolor<<‘ ‘<<"channels needed."<<endl; // mincolor=1000; // // } //} 黑白棋子 //#include<iostream> //using namespace std; //#define SIZE 30 //int map[SIZE][SIZE]; //int color[SIZE]; //int n; //int mincolor=1000; //bool ok(int x,int c){ // for(int i=0;i<n;i++){ // if(map[x][i]==1 && c==color[i]){ // return false;//相鄰節點顏色相同 // // } // return true; // } //} //void DFS(int x ,int curcolor){ // if(x>=n){ // mincolor=mincolor>curcolor?curcolor:mincolor; // return; // } // int c=color[x]; // for(c=1;c<=curcolor;++c){ // if(ok(x,c)){ // DFS(x+1,curcolor); // } // } // DFS(x+1,curcolor+1); //} //int main(){ // while(cin>>n && n){ // char str[SIZE]; // for(int i=0;i<n;i++){ // scanf("%s",str); // for(int j=2;str[j]!=‘\0‘;j++){ // map[str[0]-‘A‘][str[j]-‘A‘]=1; // } // } // color[0]=1; // DFS(1,1); // if(mincolor==1)cout<<"1 channel needed."<<endl; // else cout<<mincolor<<‘ ‘<<"channels needed."<<endl; // mincolor=1000; // // } //}
//工廠材料 #include<iostream> using namespace std; #define SIZE 7 int data[SIZE][SIZE]; int minMoney=1000; int k[SIZE]; int flag[SIZE]; void DFS(int col,int money){ if(col==7){ for(int i=0;i<SIZE;i++){ if(flag[i]>=1){ money-=data[i][0]*(flag[i]-1); } } minMoney=(minMoney>money)?money:minMoney; return; } for(int i=0;i<7;i++){ if(data[i][col]==1){ flag[i]++; money+=data[i][0]; DFS(col+1,money); money-=data[i][0]; flag[i]--; } } } int main(){ freopen("input2.txt","r",stdin); for(int i=0;i<7;i++){ for(int j=0;j<7;j++){ cin>>data[i][j]; } } for(int i=0;i<7;i++){ for(int j=0;j<7;j++){ cout<<data[i][j]<<‘ ‘; } cout<<endl; } DFS(1,0); cout<<minMoney; return 0; }
7/24