DFS
2023-07-26 16:39:59
发布于:江苏
96阅读
0回复
0点赞
#include<iostream>
using namespace std;
char a[20][10]={{},{},{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'},{'m','n','o'},{'p','q','r','s'},{'t','u','v'},{'w','x','y','z'}};
bool mark[20][10];
char ans[125];
int maxn[10]={0,0,3,3,3,3,3,4,3,4};
int c[10];
int n;
void dfs(int dep){
if(dep>=n){
for(int i=0; i<n; i++) cout<<ans[i];
cout<<endl;
return;
}
for(int i=0; i<maxn[c[dep]]; i++){
mark[c[dep]][i]=1;
ans[dep]=a[c[dep]][i];
dfs(dep+1);
mark[c[dep]][i]=0;
}
}
int main(){
cin>>n;
int cnt=1;
for(int i=0; i<n; i++){
cin>>c[i];
cnt*=maxn[c[i]];
}
cout<<cnt<<endl;
dfs(0);
return 0;
}
全部评论 1
这个我喜欢 抄了
2023-07-26 来自 江苏
2+1
2023-07-26 来自 江苏
0+1
2023-07-26 来自 江苏
0+1
2023-07-26 来自 江苏
0
有帮助,赞一个