问3【搜索与回溯算法】的题,求教!sos
2024-03-27 20:41:21
发布于:广东
【问题3】此题甚难啊!!!(我认为)😭
1111. 【搜索与回溯算法】有重复元素的排列问题
时间限制: 1000 ms 空间限制: 262144 KB 具体限制
题目描述
设R={ r1, r2 , …, rn}是要进行排列的n个元素。其中元素r1, r2 , …, rn可能相同。试设计一个算法,列出R的所有不同排列。
输入
由perm.in输入数据。文件的第1 行是元素个数n,1≤n≤500。接下来的1 行是待排列的n个元素(全部都是小写字母)。
输出
计算出的n个元素的所有不同排列输出到文件perm.out中。文件最后1行中的数是排列总数
样例输入
4
aacc
样例输出
aacc
acac
acca
caac
caca
ccaa
6
之后的解法:
#include<bits/stdc++.h>
using namespace std;
int n,t[150],cnt;
char x,ch[505];
void ss(int k)
{
if(k>n)
{
for(int i=1;i<=n;i++)
{
cout<<char(ch[i]);
}
cout<<endl;
cnt++;
return;
}
for(int i=1;i<=26;i++)
{
if(t[i]!=0)
{
ch[k]=i+96;
t[i]--;
ss(k+1);
t[i]++;
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
t[x-96]++;
}
ss(1);
cout<<cnt;
}
也是成功AC好吧。。。
全部评论 4
我写的代码,你可以参考下:https://www.luogu.com.cn/paste/n1b1st3z
2024-03-15 来自
3刚下课给你写的
2024-03-15 来自
1thank you
2024-03-15 来自 广东
0OK,你自己看一下。有问题问我。
2024-03-15 来自
1
阅
2024-03-25 来自 浙江
0🫡
2024-03-25 来自 广东
0
这边可以给一下题面链接,acgo上有一题:https://www.acgo.cn/problemset/142/info
也是求排列,可以看一下2024-03-15 来自 浙江
0ok谢谢拯救,这是我们老师留的题,难搞😓
2024-03-15 来自 广东
0
有具体的题目链接吗?
2024-03-15 来自
0这是我们老师留的题,没有链接哦
2024-03-15 来自 广东
0这道题很像:https://www.acgo.cn/problemset/142/info
2024-03-15 来自 广东
0我有空看一下
2024-03-15 来自
0
有帮助,赞一个