next_permutation 是算法库(<algorithm>)里的一个用于求全排列的函数,其定义为

next_permutation(_BidIt _First, _BidIt _Last)

可以看出,对于next_permutation需要可迭代容器的范围(即头尾),然后会根据字典序来对此序列来进行全排列并存储在原先的容器里,其排列顺序也是按照字典序输出的

注意,这里的“字典序”对于字符串是根据ASci码来比较,对于数字就是按照其大小来比较

给出个例子,可以看到对于1,2,3,其自动将其全排列求出并存在原数组中

而如果数组一开始就是别的序列呢,比如

可以看到,next_permutation是非常智能的,可以识别当前排列并顺着字典序继续进行其下一个排列,不会重复

给出一个很好的例子

P1088 [NOIP2004 普及组] 火星人 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

这道题如果清楚的知道next_permutation可以直接输出其下一步的全排列,输出答案只需要三行代码---->读入,next_permutation M次,输出,这样的数组中存储的就是答案中的全排列

同理next_permutation相应的就是prev_permutation,其求的是对应容器中序列的上一个全排列

逆天的全排列函数next_permutation()的更多相关文章

  1. C++中全排列函数next_permutation用法

    最近做了TjuOj上关于全排列的几个题,室友告诉了一个非常好用的函数,谷歌之,整理如下: next_permutation函数 组合数学中经常用到排列,这里介绍一个计算序列全排列的函数:next_pe ...

  2. C++中全排列函数next_permutation 用法

    今天蓝桥杯刷题时发现一道字符串排序问题,突然想起next_permutation()函数和prev_permutation()函数. 就想写下next_permutation()的用法 next_pe ...

  3. HDU 1027 Ignatius and the Princess II[DFS/全排列函数next_permutation]

    Ignatius and the Princess II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ( ...

  4. 全排列函数next_permutation(a,a+n)

    #include<iostream> #include<algorithm> using namespace std; int main(){ ]; int n; cin> ...

  5. C++全排列函数next_permutation()和prev_permutation()

    头文件:#include<algorithm> * * * 1. next_permutation(): next_permutation()函数的返回类型是bool类型. 即:如果有一个 ...

  6. next_permutation() 全排列函数

    next_permutation() 全排列函数 这个函数是STL自带的,用来求出该数组的下一个排列组合 相当之好用,懒人专用 适用于不想自己用dfs写全排列的同学(结尾附上dfs代码) 洛谷oj可去 ...

  7. C++ STL 全排列函数

    C++  全排列函数...一听名字就在<algorithm>中... 首先第一个说的是next_permutation: #include <algorithm> bool n ...

  8. 2017年上海金马五校程序设计竞赛:Problem A : STEED Cards (STL全排列函数)

    Description Corn does not participate the STEED contest, but he is interested in the word "STEE ...

  9. POJ1833 排列 调用全排列函数 用copy函数节省时间 即使用了ios同步代码scanf还是比较快

    排列 Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 21268   Accepted: 8049 Description 题 ...

  10. C++中全排列算法函数next_permutation的使用方法

    首先,先看对next_permutation函数的解释: http://www.cplusplus.com/reference/algorithm/next_permutation/?kw=next_ ...

随机推荐

  1. 绿色数字园区运维:一屏群集 3D 可视化智慧楼宇

    前言 在"新基建"驱动的数字经济热潮下,智慧园区建设发展成为实现园区管理绿色化.现代化.智慧化的核心抓手.通过利用云计算.物联网.大数据等新一代技术手段,充分聚合园区内各类资源,全 ...

  2. 双非本科拿下oppo sp!这位粉丝太强了!

    哈喽,大家好,我是仲一.今天分享的是一位双非本科生拿下oppo sp的秋招经验.当时,这位粉丝咨询我offer选择的时候,看到年薪31W这个数字,我以为他是研究生.后来,再三确认了,他确实是本科生. ...

  3. arguments使用

    arguments在函数中可以使用,表示包含了当前函数调用时传入的实参. arguments通过索引值获取实参,索引值从开始,按顺序依次表示函数调用时传过来的实参. 1 // arguments的使用 ...

  4. 2023Java面试学习网站推荐

    本文给大家推荐博主收藏的6个程序员面试学习站点,按照项目简介.网站截图.是否收费供大家参考. 1. JavaGuide 网站地址:https://javaguide.cn 项目简介:「Java学习 + ...

  5. C#树的实现

    ddd /// <summary> /// 遍历,线索化等操作的接口 /// </summary> interface ITravelBinTree { void PreOrd ...

  6. 自动化测试复习巩固第一天,requests的用法

    如何快速发送post请求 因为我用的python语言,所以大家需要在本地安装python语言和pycharm,如何安装请自行查找教程,这里不做过多赘述 这里需要提前下载安装好需要的第三方库reques ...

  7. /etc/profile,/etc/bashrc,~/.profile,~/.bashrc 的区别及使用

    转载请注明出处: /etc/profile  为系统的全局环境变量设置,此文件为系统的每个用户设置环境信息    /etc/bashrc 为每一个运行bash shell的用户执行此文件.当bash ...

  8. 基于jquery开发的Windows 12网页版

    预览 https://win12.gitapp.cn 首页代码 <!DOCTYPE html> <html lang="en"> <head> ...

  9. SpringCloud对使用者透明的数据同步组件

    一.背景 云端使用Spring Cloud实现,A服务有一些数据,B和C服务也需要A服务的这些数据,但是系统上面只有A服务有数据操作的入口,B和C服务只能从A服务处同步数据到自己的表里面. 解决方案是 ...

  10. 问题--flask无法发邮件,无法登录

    1.问题 早上测试项目的时候,一直无法正确发送邮件,无法接收,但是查不出原因是什么 2.解决 改变了一下思路,去登录了不需要邮件验证码的用户,发现错误 这个错误提示是一个数据库连接错误,表明应用程序无 ...