AcWing 427. Jam的计数法(dfs)
原题链接
中等
作者:
O₂
,
2024-10-15 18:31:06
,
所有人可见
,
阅读 5
思路:
爆搜就可以了,与普通爆搜的区别是需要记录上面一个选的字母
Code:
#include<bits/stdc++.h>
using namespace std;
int minv,maxv,n;
string s,path;
vector<string>res;
void dfs(int u,int last){
if(u==n){
//cout<<path<<endl;
if(path>s) res.push_back(path);
return;
}
for(int i=last+1;i<=maxv;i++){
path+=(char)(i-1+'a');
dfs(u+1,i);
path.pop_back();
}
//cout<<endl;
}
int main(){
cin>>minv>>maxv>>n>>s;
dfs(0,minv-1);
for(int i=0;i<min((int)res.size(),5);i++){
cout<<res[i]<<endl;
}
return 0;
}