近期几次考试的一些题目暴力分都有用到全排列。

全排列是个好东西啊...

回想一下,我们最开始学到全排列是什么时候呢?

大概是学搜索的时候罢...

一、传统搜索算法

想复习可以戳 https://www.luogu.org/problemnew/show/P1706

 #include<iostream>
#include<cstdlib>
#include<cstdio>
#include<iomanip>
using namespace std;
int num=,a[]={},n,r;
bool b[]={};
int search(int);
int print();
int main(){
cin>>n;
search();
cout<<num<<endl;
system("pause");
return ;
}
int search(int k)//k是找第几位数
{ for(int i=;i<=n;i++)
if(!b[i])
{ a[k]=i;
b[i]=;
if(k==n)print();
else search(k+);
b[i]=;}
}
int print()
{ num++;
for(int i=;i<=n;i++)
cout<<a[i];
cout<<endl;
}

二、利用万能的STL<algorithm>模板库

一个函数:next_permutation()

代码就是:

 #include<algorithm>
#include<cstdio>
using namespace std;
int a[]={,,,,,,};
int n;
int main()
{
scanf("%d",&n);
do{
for(int i=;i<n;i++)
{
printf("%d\0",a[i]);
}
printf("\n");
}while(next_permutation(a,a+n));
return ;
}

全排列(传统&&黑科技)的更多相关文章

  1. [自己动手玩黑科技] 1、小黑科技——如何将普通的家电改造成可以与手机App联动的“智能硬件”

    NOW, 步 将此黑科技传授予你~ 一.普通家电控制电路板分析 普通家电,其人机接口一般由按键和指示灯组成(高端的会稍微复杂,这里不考虑) 这样交互过程,其实就是:由当前指示灯信息,按照操作流程按相应 ...

  2. 【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技

    [导读]TensorFlow 在 2015 年年底一出现就受到了极大的关注,经过一年多的发展,已经成为了在机器学习.深度学习项目中最受欢迎的框架之一.自发布以来,TensorFlow 不断在完善并增加 ...

  3. 优云亮相GOPS2017全球运维大会 “黑科技”获全场最高关注

    2017年4月21日,GOPS――2017全球运维大会于深圳・圣淘沙酒店拉开帷幕.GOPS全球运维大会由高效运维社区(GreatOPS)和开放运维联盟(OOPSA)联合主办,由工信部信通院数据中心联盟 ...

  4. MTSC2019-腾讯WeTest独家揭秘移动游戏测试和质量保障 QA 黑科技

    WeTest 导读 TesterHome 联合腾讯 WeTest 出品 MTSC2019 重磅游戏测试 Topic ,首次公开揭秘腾讯亿级用户游戏背后的质量保障 QA 黑科技. 2019 年,中国游戏 ...

  5. [转帖]新iPhone的黑科技:UWB技术揭秘

    新iPhone的黑科技:UWB技术揭秘 http://blog.nsfocus.net/iphone-black-technology-uwb-technology-revealed/    阅读:  ...

  6. c++中比较好用的“黑科技”

    切入正题,上黑科技 一.黑科技函数(常用的我就不写了,例如sort函数) 1.next_permutation(a+1,a+1+n) a[1-n]全排列 2.reverse(a+1,a+1+n) 将a ...

  7. 聊聊H5与JS近几年的黑科技

    聊聊H5与JS近几年的黑科技 自ajax技术的诞生,编程界兴起了一股WEB开发热,facebook,Twitter等众多大佬级企业都在网页应用上大放异彩,这十年我们见证了前端技术的崛起.这期间产生了众 ...

  8. c++中比较好用的黑科技

    切入正题,上黑科技 一.黑科技函数(常用的我就不写了,例如sort函数) 1.next_permutation(a+1,a+1+n) a[1-n]全排列 2.reverse(a+1,a+1+n) 将a ...

  9. 支持十万并发的黑科技-NIO

    今天是猿灯塔“365天原创计划”第3天. 今天讲: 支持十万并发的黑科技-NIO 翻译过来就是:Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(一种远程调用) 分布式服务框架(SOA),致 ...

随机推荐

  1. iterm2退出时保存会话状态,下次打开恢复

    可以保存已经打开的窗口,本机进入的目录 无法保存ssh连接状态,无法保存ipython状态等 设置方法: 1.这里设置为yes,据说,反复修改一次,重启才起作用,实在有问题就试试 2.这里设置一下 3 ...

  2. linux 查找目录下的文件内容并替换(批量)

    2.sed和grep配合 命令:sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./` 作用:将当前目录(包括子目录)中 ...

  3. 一天教你入门struts2

    写在前面 自己也是一个java和java web的菜鸟.之前没有接触过java web方面的开发 想通过一个小项目,来熟悉struts2的开发流程 一个有趣的想法源于教研室项目上的一个功能实现–自己主 ...

  4. es5~es6

    1.用箭头函数减少代码(相信你在Vue已经看到了) ES5: function greetings (name) { return 'hello ' + name } ES6: const greet ...

  5. 关键路径(AOE)---《数据结构》严蔚敏

    // exam1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include &l ...

  6. 在XX公司工作第二天,维护已有代码

    根据<C++ More Exception>所述的规则: Rule #1: Never write using-directives in header files. Rule #2: N ...

  7. OpenCV图像处理篇之图像平滑

    图像平滑算法 图像平滑与图像模糊是同一概念,主要用于图像的去噪.平滑要使用滤波器.为不改变图像的相位信息,一般使用线性滤波器,其统一形式例如以下: %20\Large%20g(i,j)=\sum_{k ...

  8. PHP引用是什么?

    引用是什么 在 PHP 中引用意味着用不同的名字访问同一个变量内容.这并不像 C 的指针,替代的是,引用是符号表别名.注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字.最 ...

  9. ios archives 出现的是other items而不是iOS Apps的解决方案

    ios archives 出现的是other items而不是iOS Apps的解决方案 项目打包时出现的是不是出现在iOS Apps栏目下面,而是Other Items而且右边对应的Upload t ...

  10. md5 js

    js-md5 - npm https://www.npmjs.com/package/js-md5 var rotateLeft = function(lValue, iShiftBits) { re ...