首页 > 代码库 > 7/24
7/24
//八皇后 #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){} // } // } //} void DFS(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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。