首页 > 其他分享 >全排列问题

全排列问题

时间:2022-08-23 14:11:16浏览次数:44  
标签:排列 int 问题 重复 include data find

全排列问题

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

这个题我们可以用深搜来解决:每一位在保证不重复的情况下先从1~n中最小的开始;从最后一位开始依次遍历,遍历过的进行标记,防止重复;当一种情况遍历完时,前一位加一,后一位在保证不重复的情况下从1~n中最小的开始;重复过程。

代码如下:

//全排列
#include<cmath>
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
struct dbf
{
int data=0;
bool b=0;
};
dbf g[99999];
int t = 0;
void find(int n)
{
if (n > t)
{
for (int i = 1; i <= t; i++)
{
printf("%5d", g[i].data);
}
cout << endl;
return;
}
for (int i = 1; i <= t; i++)
{
if (g[i].b == 0)
{
g[i].b = 1;
g[n].data = i;
find(n + 1);
g[i].b = 0;
}
}
}
int main()
{
cin >> t;
find(1);
return 0;
}

标签:排列,int,问题,重复,include,data,find
From: https://www.cnblogs.com/xdzxmuchen/p/16615947.html

相关文章

  • 有时间, 看看这个问题
    Failedtoexecutegoalorg.springframework.boot:spring-boot-maven-plugin:2.7.2:repackage(repackage)onprojectcommon:Executionrepackageofgoalorg.springf......
  • 单例模式+生产者消费者问题+死锁
    真正的多线程开发,降低耦合性多线程就是一个独立的资源类,没有任何附属操作属性和方法     Synchronized和lock区别    线程之间的通信问题:生产者......
  • Java Servlet 入门:问题系列:Eclipse J2EE Preview Server 端口设置方法
    问题:J2EEPreview 是Eclipse内置的Web宿主运行程序,默认占了8088端口。网络上的教程,多数是配置了Tomcat,也是8088端口,两者很容易冲突,引发初学者的问题。因此,新手应该一开......
  • [题解]轮流拿牌问题_一道博弈论笔试题(C++)
    题目A和B轮流从一个数组左右两端取数,A先B后,每次取一个数,最终取数总和大者获胜,两人每次都会选择最有利的策略,求获胜者取数的和。思路笔试时遇到的一道算法题,也是博弈论中......
  • 全排列问题
    全排列问题分析:根据题意,要求输出数字的所有排列组合,最主要的是写一个dfs函数。在函数中要规定循环结束的条件,也就是所有的数排列完成,然后再按照题意输出,在循环中如果这个......
  • dev 报表字段小计 使用函数问题
        第一个统计正确,第二个统计出错第一个用的sumRunningSum([Quantity])第二个用的Sum. 总结sum是总计   sumRunningSum小计还有个小计sumSum跟前者......
  • 洛谷 P1706 全排列问题
    题目链接:https://www.luogu.com.cn/problem/P1706试题分析:题目要求按照字典序输出自然数 1 到 n 所有不重复的排列,且每一序列中的数字也不重复,我们可以运用搜索,将搜索......
  • 【Ubuntu】Ubuntu 18.04 LTS 更换国内源——解决终端下载速度慢的问题
    最近装了ubuntu18.04LTS,下载软件有点慢,网上搜了下解决方案,大致是两种:一、把/etc/apt/sources.list文件里的源更换一下,改成阿里云或者其它的镜像的文件;二、更换software&up......
  • 全排列问题
    先定义两个数组,一个是用来存放解的,一个是用来标记该数是否用过。先判断格子是否填满了,如果填满,则输出。如果没有填满,则开始循环,在循环中先判断当前填的数是否用过,如果没......
  • 【HMS core】【FAQ】典型问题合集7
    ​1、【HMScore】【AccountKit】【问题描述】集成华为帐号服务后,登录服务异常,无法获取用户信息,报statusCode为907135001,抓取报错日志:Failedtoreadmetadataforthe......