C++:七个和尚挑水问题

来源:互联网 发布:php lua 编辑:程序博客网 时间:2024/05/08 17:39
利用简单的全排列思想,进行暴力搜索!!
//七个和尚挑水#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;int main(){int data[8][8];int i,j;for(i=0;i<8;i++)for(j=0;j<8;j++)data[i][j]=0;data[1][2]=1;data[1][4]=1;//第一个和尚星期二和星期四data[2][1]=1;data[2][6]=1;data[3][3]=1;data[3][7]=1;data[4][5]=1;data[5][1]=1;data[5][4]=1;data[5][6]=1;data[6][2]=1;data[6][5]=1;data[7][3]=1;data[7][6]=1;data[7][7]=1;//利用全排列进行包里搜索,下面是全排列函数string ooo="1234567";vector<string> voo;sort(ooo.begin(),ooo.end());while(next_permutation(ooo.begin(),ooo.end())){//cout<<ooo<<endl;for(i=1;i<8;i++){if((data[i][ooo[i-1]-'0'])!=1)break;if(i==7)voo.push_back(ooo);}}for(vector<string>::iterator iter=voo.begin();iter!=voo.end();iter++)cout<<*iter<<endl;while(!voo.empty())  //这也是vector的输出。{cout<<voo.back()<<endl;voo.pop_back();}}

0 0
原创粉丝点击