请问pku 1731如何做呢?请给点思路

来源:百度知道 编辑:UC知道 时间:2024/05/17 07:40:42
http://acm.pku.edu.cn/JudgeOnline/problem?id=1731

如何用深搜解决呢?(stl方法除外)

这是我刚写的 ac了

#include<iostream>
#include<string>
#include<vector>
using namespace std;

vector<string> strVct;

class Visit
{
public:
string visited;
int booksLeft[26];
Visit();
};

Visit::Visit()
{
visited = "";
memset(booksLeft, 0, sizeof(booksLeft));
}

void dfs(Visit v, const int strSize)
{
if(v.visited.size()==strSize)
{
//cout<<"adding... "+v.visited<<endl;
//system("PAUSE");
strVct.push_back(v.visited);
//return ;
}
else
{
for(int i=0;i<26;i++)
if(v.booksLeft[i]>0)
{
Visit anotherV = v;
anotherV.visited += char(i+97);
//cout<<count<&l