博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手动实现next_permutation已经康拓展开讲解
阅读量:3961 次
发布时间:2019-05-24

本文共 908 字,大约阅读时间需要 3 分钟。

手动实现next_permutation已经康拓展开讲解

原始版

#include
#include
#include
#include
#define N 100010using namespace std;int a[N];int main(){
int n,m; scanf("%d %d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&a[i]); while(m--) next_permutation(a+1,a+n+1); for(int i=1;i<=n;i++) printf("%d ",a[i]);}

手动版

#include
#include
#include
#include
#define N 100010using namespace std;int a[N],n,m;void next(){
int now = a[n],p=n; //从后面往前面找到第一个now比a[p-1]大的位置 while(now
=p;i--) if(a[i]>a[k]) break; swap(a[k],a[i]); //注意交换时边界没有等号 for(i=n;i>(p+n)/2;i--) swap(a[i],a[n+p-i]);}int main(){
scanf("%d %d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&a[i]); while(m--){
next(); } for(int i=1;i<=n;i++) printf("%d ",a[i]);}

接下来讲解康拓展开

可参考

转载地址:http://mllzi.baihongyu.com/

你可能感兴趣的文章
signal( SIGINT, SigIntHandler )
查看>>
linux signal 处理
查看>>
linux的system () 函数详解
查看>>
在shell脚本的第一行中,必须写#!/bin/bash
查看>>
一句话##错误 'ASP 0116' 丢失脚本关闭分隔符
查看>>
文件上传漏洞之.htaccess
查看>>
常见网络安全设备默认口令
查看>>
第三周任务,利用文件上传漏洞
查看>>
ctfhub 投稿彩蛋
查看>>
【Shiro_exploit】PYTHON报错解决:ModuleNotFoundError: No module named 'requests'
查看>>
一次很折腾的扩容,记录一下之后再整理
查看>>
VirtualBox虚拟机网络配置
查看>>
oracle vm virtualbox虚拟机下,CentOS7系统网络配置
查看>>
Windows 10下Docker使用经验谈
查看>>
centos下nmap安装和基础命令
查看>>
ubuntu出现有线已连接却无法上网
查看>>
一句话命令
查看>>
解决Linux CentOS中cp -f 复制强制覆盖的命令无效的方法
查看>>
wdcpv3升级到v3.2后,多PHP版本共存的安装方法
查看>>
centos tar压缩与解压缩
查看>>