站外dfs求救!
  • 板块学术版
  • 楼主xywuyu
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/8 19:49
  • 上次更新2024/10/8 21:28:07
查看原帖
站外dfs求救!
1395165
xywuyu楼主2024/10/8 19:49
#include<bits/stdc++.h>
using namespace std;
char s[10000];int n,a,e;
void dfs(int y)
{bool g;
	if (y>a)
	{e+=1;
		for (int i=1;i<=a;i++)
		cout<<s[i];
		cout<<"\n";
        
		return ;
	}
	for (int i=0;i<n;i++)
	{g=1;
		
		
		s[y]=char(i+97);
     for (int j=1;j<y;j++)
     {if (s[y]==s[j])
     {g=0;break;}}
     if (g==0)
     continue;
		dfs(y+1);
	 } 
	 
	 return ;
 } 
 
 
 
 
int main()
{

cin>>n>>a;
dfs(1);
cout<<e;
return 0;//描述
  有个特工潜入了K国,K国的安全部门了解到,这个特工的代号是由r个互不相同的小写字母组成。现在已从破译的密电中得知,这r个小写字母就在“a”开始的连续n个字母中,希望你帮忙把特工代号的所有可能都罗列出来,以及总共有多少种可能。

输入
一行,两个整数 n 和 r (1 < n < 100 < r < = n)。
输出
若干行,每行一种可能的代号(按字典序从小到大输出)。
最后一行一个整数,即所罗列出来可能的代号的总数。
样例输入
3  2
样例输出
ab
ac
ba
bc
ca
cb
6
}
2024/10/8 19:49
加载中...