有重复元素的排列(DFS)
2024-09-08 02:05:52
题目描述:
设R={ r1, r2 , …, rn}是要进行排列的n个元素。其中元素r1, r2 , …, rn均为小写字母并且可能相同。试设计一个算法,列出R的所有不同排列。
给定n 以及待排列的n 个元素。计算出这n 个元素的所有不同排列。
输入格式:
第1 行是元素个数n,1≤n≤500。接下来的1 行是待排列的n个元素。
输出格式:
计算出的n个元素的所有不同排列
最后1行中的数是排列总数
样例输入:
4
aacc
样例输出:
aacc
acac
acca
caac
caca
ccaa
6 思路:这题特别明显了,深搜。枚举每一个组合的可能(前提是不重复)。 上我的垃圾代码:
#include<bits/stdc++.h>
using namespace std;
char b[],c;
int a[],n,num;
void dfs(int pos){
if(pos>n){
num++;
for(int i=;i<=n;i++)printf("%c",b[i]);
printf("\n");
return;
}
for(int i=;i<=;i++)
if(a[i]>){
b[pos]=char(i+);
a[i]--;
dfs(pos+);
a[i]++;
}
}
int main(){
cin>>n;
for(int i=;i<=n;i++){
cin>>c;
a[c-('a'-)]++;
}
dfs();
cout<<num<<endl;//输出种数
return ;
}
最新文章
- 用Java代码实现拦截区域网数据包
- Unix目录结构的来历
- C#复习③
- 安装Docker Toolbox后出现的问题
- 异步post请求之Block方法
- An Introduction to Interactive Programming in Python (Part 1) -- Week 2_1 练习
- iOS: imageIO完成渐进加载图片
- Java基础知识强化之集合框架笔记67:Hashtable的实现原理
- php中抽象类和接口的特点、区别和选择
- Linux下搭建tomcat集群全记录(转)
- 多目标遗传算法 ------ NSGA-II (部分源码解析)介绍
- XSS过滤JAVA过滤器filter 防止常见SQL注入
- [转]k8s核心概念
- Spring将Bean导入IOC容器
- python中多继承C3算法研究
- 利用django信号实现计数功能
- css样式中的绝对路径的参考对象
- IDFA
- 20155226-虚拟机与Linux之初体验
- 【BZOJ 2656】2656: [Zjoi2012]数列(sequence) (高精度)
热门文章
- Luogu P3065 [USACO12DEC]第一!First!【字典树/拓扑排序】By cellur925
- Tomcat,Apache,JBoss的区别
- JavaScript进阶 - 第9章 DOM对象,控制HTML元素
- Educational Codeforces Round 66 (Rated for Div. 2) A. From Hero to Zero
- hdu5884
- HTTP状态码完整版
- display:inline-block间隙产生的原因以及解决方案
- 网站安全webshell扫描
- myeclipes出现{Could not create the view: An unexpected except
- vijos 1320 清点人数