[ZCMU OJ]1620: 全排列 1683: 排列(next_permutation全排列函数的使用)

news/2024/11/1 18:41:33/

首先我们先来认识一个函数:全排列函数——next_permutation。这个函数用于全排列问题功能十分强大。与之相对还有一个函数prev_permutation;二者区别在于:前者求的是下一个全排列,而后者求的是上一个全排列;二者在用法上是相同的(类似sort的用法)。对于next_permutation,如果当前的序列存在下一个全排列则return true,否则return false;prev_permutation同理。

函数原型:

 #include <algorithm>

bool next_permutation(iterator start,iterator end);

接下来两道题是next_permutation的典型用法。

———————————————————————————————

1620: 全排列

Description

给定n个数 a[0] , a[1] ........ a[n-1], 输出其全排列。

Input

第一行输入一个数n,(n<7)

接下来一行输入n个数。

Output

按字典序从小到大输出全排列

Sample Input

3

1 2 3

3

1 2 2

Sample Output

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

1 2 2

2 1 2

2 2 1

———————————————————————————————————————————

ac代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;while(cin>>n){int a[n];for(int i=0;i<n;i++)cin>>a[i];sort(a,a+n); //记得给数组提前排好序 do{for(int i=0;i<n;i++){cout<<a[i];if(i!=n-1)cout<<" ";}cout<<endl;}while(next_permutation(a,a+n));} 
} 

———————————————————————————————————————————

1683: 排列

Description

给你一个数,输出所有的排列

Input

一个数n

Output

看样例

Sample Input

2

Sample Output

1 2

2 1

———————————————————————————————————————————

ac代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;while(cin>>n){int a[n+1];for(int i=1;i<=n;i++)a[i]=i;sort(a+1,a+n+1);//仍然需要排序 do{for(int i=1;i<=n;i++){cout<<a[i];if(i!=n)cout<<" ";}cout<<endl;} while(next_permutation(a+1,a+n+1));//注意边界 } 
}


http://www.ppmy.cn/news/132346.html

相关文章

Weblogic 11g 部署

操作系统&#xff1a;RedHat Enterprise Linux 5 32位 Weblogic版本&#xff1a;wls1035_oepe111172_linux32.bin 安装weblogic 1、修改控制参数 [rootyorkshi ~]# vi/etc/security/limits.conf # /etc/security/limits.conf # #Each line describes a limit for a user inthe …

2g 双核电脑 linux,9208)(奔腾双核E5200/2G/320G)电脑详细技术

处理器型&#xff1a;intel 酷睿2双核 p7350 intel 酷睿2双核 p7450 intel 酷睿2双核 t6600 intel 奔腾双核t4300 intel 奔腾双核 t4400 intel 赛扬双核 t1600 intel 赛扬双核 t3000操作系统&#xff1a;windowsvista home basic dos标配内存&#xff1a;1gb 2gb 硬盘容量&…

台式计算机m.2的参数,联想启天M系列

对 比 Intel Pentium E6600 3.06GHz 500GB 集成显卡 暂无 对 比 Intel Pentium G630 2.7GHz 320GB 独立显卡 暂无 对 比 Intel Celeron 420 1.6G 80GB 集成显卡 暂无 对 比 Intel Core2 Duo E7500 500GB 独立显卡 暂无 对 比 Intel Core i5 4570(3.2GHz/L3 6M) 500GB 独立显卡 …

g30u盘启动 中科曙光1620_曙光I620-G20服务器安装windowsserver2008r2方法

在中科曙光 I620-G20 服务器上安装 Windows 2008 R2 系统步骤 1 、制作启动盘 下载 windows 2008 R2 系统镜像文件。使用 UltraISO (软碟通)工具制作启动盘。 使用启动盘 鼠标右键“以管理员身份运行” UltraISO 图标。 浏览到存放镜像文件的目录&#xff0c;选中该目标文件&am…

IntelLinux显卡驱动安装指南

Intel Linux显卡驱动安装指南 1. 简介 通常情况下&#xff0c;Intel显卡驱动已经被集成在Linux发行包里面了&#xff0c;用户无需单独安装。 这篇指导是为那些自己从头开始编译最新版本驱动的人而写的。当你想订制显卡驱动或者了解更多的时候&#xff0c;这篇文章就会管用…

藏经阁(四)数码管 TM1620芯片手册 解析

文章目录 芯片概述芯片特性芯片管脚定义指令解析时序解析实战应用 芯片概述 TM1620是一种LED&#xff08;发光二极管显示器&#xff09;驱动控制专用IC 芯片特性 显示模式&#xff08;8 段 6 位、9段x 5位、10段 4位&#xff09;辉度调节电路&#xff08;8 级占空比可调&…

8051单片机驱动TM1620任意字符循环显示程序(详细注释版)

8051单片机驱动TM1620任意字符循环显示程序 本人亲写&#xff0c;亲测可用 时序图 /************************************************** 名称&#xff1a;STC51驱动TM1620 4位数码管显示MCU: STC11F06主频&#xff1a;11.0592晶振 *************************************…

debian 10 安装 oracle 11g-11.2.0.1

debian 10 安装 oracle 11g-11.2.0.1 1、写在前面&#xff1a;这篇文章最后安装失败了。这是一次失败的尝试&#xff0c;仅做记录。结论是Debian不支持Oracle数据库安装。后续再尝试吧。1、下载oracle 11g (11.2.0.1.0)1.1、Oracle Database 11.2.0.1.01.2、Oracle Database Gr…