当前位置: 首页 > news >正文

西安网站开发的未来发展页面网站建设

西安网站开发的未来发展,页面网站建设,网站产品数据如何恢复,做网站的客户资料交换qq群题目 把 1∼ n n n 这 n n n 个整数排成一行后随机打乱顺序,输出所有可能的次序。 输入格式 一个整数 n n n。 输出格式 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行相邻两个数用一个空格隔开。 其次,对于两…

题目

把 1∼ n n n n n n 个整数排成一行后随机打乱顺序,输出所有可能的次序。

输入格式

一个整数 n n n

输出格式

按照从小到大的顺序输出所有方案,每行 1 个。

首先,同一行相邻两个数用一个空格隔开。

其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。

数据范围

1 ≤ n ≤ 9 1≤n≤9 1n9

输入样例

3

输出样例

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

思路

该问题也被称为全排列问题,所有可能的方案总数是 n ! n! n! 种。在这里,递归需要求解的问题是 “把指定的 n n n 个整数按照任意次序排列”,在每次递归中,尝试把每个可用的数作为数列中的下一个数,求解 “把剩余 n − 1 n-1 n1 个整数按照任意次序排列” 这个规模更小的子问题。

代码

#include <cstdio>
using namespace std;int order[15]; //按顺序依次记录被选择的整数
bool chosen[15]; //标记被选择的整数
int n;void dfs(int cur) {if (cur == n + 1) { //问题边界for (int i = 1; i <= n; i++) {printf("%d ", order[i]);}puts("");return ;}for (int i = 1; i <= n; i++) {if (chosen[i]) continue;order[cur] = i;chosen[i] = true; //标记i被选择了dfs(cur + 1);chosen[i] = false; //回溯到上一个问题前,恢复现场order[cur] = 0; //本行可以省略,因为每次都会被重新赋值}
}int main() {scanf("%d", &n);dfs(1);return 0;
}
http://www.yayakq.cn/news/110522/

相关文章:

  • 免费个人网站建设报价网站上线
  • 网站建设详细方案模板网站设计实训报告
  • 自己建网站流程要学什么做排行网站
  • 网站建设需要用到的技术苏州建站免费模板
  • 手机上制作网站的软件有哪些网站可以做海报设计知乎
  • 做网站需要什么编程语言wordpress tax
  • 排名好的宜昌网站建设云电脑免费版永久使用
  • 实时定量引物设计网站怎么做中国建设银行官网站u盾证书
  • 国外的旅游网站做的如何上海人才网官网还是上海市人才网
  • 风景网站模版网站图片设置方法
  • 免费注册网站平台dw做网站背景图片设置铺平
  • 网站群建设座谈会怎么用织梦修改建设一个新的网站
  • 做内部网站cms手机网站页面文字做多大
  • 个人音乐网站程序源码推广网站的图片怎么做
  • qq空间网站根目录泰兴市网站建设
  • 广州 网站建设模板谷歌网站怎么设置才能打开网站
  • 皮革材料做网站郑州发布最新消息今天
  • 网站怎么做点击广告最好的网站服务器
  • 找个可以直接看的网站广告设计网站排行榜前十名
  • 自己创建公司网站wordpress ask me
  • 江苏省两学一做网站手机网站模板更换方法
  • 免费的做微博的网站模板环境工程公司宣传册设计样本
  • 百度网站大全服务提供网站
  • 做ppt设计师哪个网站好市场营销试题库(带答案)
  • 福建省建设工程执业注册管理中心网站画册设计网站欣赏
  • 一个人做网站难吗杭州网站开发工程师
  • 网站栏目建设方案云南网站的设计公司
  • 企业网站建设报价模板品牌建设和品牌打造方法
  • 高明做网站有没有做汽车维修记录网站
  • 上海市住房和城乡建设部网站长沙平台网站建设