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

江苏住房和城乡建设网站微帮推广平台怎么加入

江苏住房和城乡建设网站,微帮推广平台怎么加入,网站空间ip地址查询,大成建设株式会社网站见:P1706 全排列问题 - 洛谷 题目描述 按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。 输入格式 一个整数 n。 输出格式 由 1∼n 组成的所有不重复的数字序列&#xf…

见:P1706 全排列问题 - 洛谷

题目描述

按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。

输入格式

一个整数 n。

输出格式

由 1∼n 组成的所有不重复的数字序列,每行一个序列。

每个数字保留 5 个场宽。

输入输出样例

输入 #1

3

输出 #1

    1    2    31    3    22    1    32    3    13    1    23    2    1

说明/提示

1≤n≤9。

算法解析

DFS,

对楼上的回溯+剪枝进行详解。

我们以N=3为例,

构造一棵搜索树(或说是状态树)来进行搜索。

同时构造出三个格子,

用来存放搜索树中的结果。

现在,我们从第一格开始搜索。

第一格填1的搜索树如下:

所以N=3的情况下,

第一格填1的排列情况共有两种123,132.

第一格填2的搜索树如下:

所以N=3的情况下,

第一格填2的排列情况共有两种 213,231.

如果你看懂了,

请你自己画画第一格填3的搜索树。

程序实现

我们总结一下在上一部分中的思路在程序中如何实现。

先定义两个数组,

一个是用来存放解的,

一个是用来标记该数是否用过。

接下来就是写深搜的函数了。

主要思路:

先判断格子是否填满了,

如果填满,

则print()一下。

如果没有填满,

则开始循环,

在循环中先判断当前填的数是否用过,

如果没有,

则填入,

搜索下一格。

程序实现如下:

#include <bits/stdc++.h>
using namespace std;
#define int long long//十年OI一场空,不开long long见祖宗
const int maxn=10;
int a[maxn];
int t[maxn];
int n;void dfs(int k){if(k==n+1){for(int i=1;i<=n;i++){cout<<"    "<<a[i];}cout<<endl;return;}for(int i=1;i<=n;i++){if(t[i]==0){a[k]=i;t[i]=1;dfs(k+1);t[i]=0;}		}return;
}signed main() {	cin>>n;dfs(1);return 0;
}

三连一下吧

欢迎评论

http://www.dtcms.com/wzjs/215921.html

相关文章:

  • 灵台门户网站建设百度一下知道首页
  • 住房和城乡建设查询平台seo优化专家
  • 塑料机械怎么做网站汕头seo排名公司
  • 网站对品牌的作用seo网站内容优化有哪些
  • 南昌专业做网站公司哪家好如何自建网站
  • 做设计赚钱网站网络推广员
  • 在网站社保减员要怎么做青岛最新消息
  • 四川专门做招聘酒的网站信息流优化师简历怎么写
  • 网设网站推广及seo方案
  • 有了自己的网站怎样做后台大数据营销策略有哪些
  • 网络服务包括哪些36优化大师下载安装
  • 网站制作报价多少百度搜索结果
  • 潍坊网站制作熊掌号正规seo排名多少钱
  • 做网站仓库报表系统新手如何涨1000粉
  • wordpress站长地图长春模板建站代理
  • 建数据库的网站多少钱app推广渠道商
  • wordpress mac 写文章抖音seo排名系统哪个好用
  • thinkphp企业网站模板下载河北百度seo关键词
  • 手机网站怎么设计如何快速被百度收录
  • 中铁建设工程项目公示网站想做百度推广找谁
  • 有什么好的网站可以接单子做竞价排名
  • 太原网站推广seo网站外链平台
  • 坪山网站建设哪家便宜合肥网站外包
  • 如何跟帖做网站今日新闻最新事件
  • 大收录量的网站怎么做好用的推广平台
  • ui设计做网站新闻小学生摘抄
  • 网站首页做多大分辨率网站维护中是什么意思
  • 给别人做网站能赚钱吗关键词排名什么意思
  • 山东济南网站建设优化百度关键词关键词大全
  • 做网站 图片更好看谷歌三件套一键安装