题目描述

情人节到了,Uim打算给他的后宫们准备情人节礼物。UIm一共有N(1<=N<=9)个后宫妹子(现充去死 挫骨扬灰!)。

为了维护他的后宫的稳定。他通过编程,得出了一个送礼物的最佳顺序。这个我们管不着。

然而他认为,如果什么事情做得太圆满不是什么好事。于是他希望得到 原定顺序 的 前一个字典序的序列。

输入格式

第一行一个整数N

第二行N个整数,表示原定排列

输出格式

前一个排列

输入输出样例

输入 #1

3
1 3 2

输出 #1

1 2 3

说明/提示

若当前排列已经是第一个,则输出'ERROR'(引号不输出)

[del]骗分?嗯哼哼。。。[/del]

/*
方法一:用STL的一个函数: prev_permutation()
就可以自动制造前一个排列
*/#include <bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int a[N];
int main()
{int n;cin>>n;for(int i=0;i<n;i++){cin>>a[i];}if(prev_permutation(a,a+n))  //如果比自己字典序小的存在 {for(int i=0;i<n;i++){cout<<a[i]<<" ";} }else cout<<"ERROR";cout<<endl;return 0;
}
/*
方法二:理解本质
首先,理解一下:
字典序如果在长度相等的序列中。
要逐位比较大小每次做这种题目,都很难脑补:
不妨先 列举 1,2,3的字典序排列吧
1,2,3
1,3,2
2,1,3
2,3,1
3,1,2
3,2,1再枚举1,2,3,4的
1,2,3,4
1,2,4,3
1,3,2,4
1,3,4,2
1,4,2,3
1,4,3,2
2,1,3,4
2,1,4,3
......
3,1,2,4
3,1,4,2
3,2,1,4
3,2,4,1
..... 举个例子,
拿1,4,2,3来说,  (4的后面找一个(比4小的)最大的放在4的位置,其余的往后从大到小排****)
它的前一个是 1,3,4,2而对于 1,4,3,2来说 (3后面找一个最大的放在3的位置,....)
它的前一个是  1,4,2,3上述的例子第一个数都是1下面举个特殊的例子,第一个数字不一样的
比如2,1,3,4  (发生ai>ai+1 的 i是1,在第一个位置,说明上一个字典序的首元素不一样了)
前一个1,4,3,2 (第一个位置放比2小的最大的,后面的从大道小排)
[如果把上述第一个数字一样的,去掉第一个数字比如1,4,2,3=>1,3,4,2]
[就会变成,4,2,3=>3,4,2] 上述的例子都是一样的,在pos之后找一个比pos位置上的数小的最大的数
然后包括pos以及之后位置上的数从大到小排
*//*
7
4 3 2 6 1 5 7
输出:
4 3 2 5 7 6 1
*/#include <bits/stdc++.h>
using namespace std;
const int N=20;
int a[N];bool cmp(int a,int b)
{return a>b;
}
int main()
{int n;cin>>n;for(int i=1;i<=n;i++)cin>>a[i];int pos=-1;for(int i=n;i>=2;i--){if(a[i]<a[i-1]){pos=i-1;break;}}if(pos==-1) puts("ERROR");else{int maxv2=-1;int pos2=-1;for(int i=pos+1;i<=n;i++){if(a[i]<a[pos]&&a[i]>maxv2){pos2=i;maxv2=a[i];}}swap(a[pos],a[pos2]);sort(a+1+pos,a+1+n,cmp);for(int i=1;i<=n;i++){cout<<a[i]<<" ";}cout<<endl;}return 0;
}

P2525 Uim的情人节礼物·其之壱 【字典序】【STL:prev_permutation】相关推荐

  1. 洛谷——P2525 Uim的情人节礼物·其之壱

    P2525 Uim的情人节礼物·其之壱 题目描述 情人节到了,Uim打算给他的后宫们准备情人节礼物.UIm一共有N(1<=N<=9)个后宫妹子(现充去死 挫骨扬灰!). 为了维护他的后宫的 ...

  2. 洛谷:P2525 Uim的情人节礼物·其之壱

    洛谷:P2525 Uim的情人节礼物·其之壱:题目链接 题解:利用C++的prev_permutation函数:可以求出给定数组的上一个字典序排序. #include <bits/stdc++. ...

  3. 【寒假每日一题】luogu P2525 Uim的情人节礼物·其之壱

    题目链接:P2525 Uim的情人节礼物·其之壱 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 情人节到了,Uim打算给他的后宫们准备情人节礼物.UIm一共有N(1< ...

  4. [洛谷]P2525 Uim的情人节礼物·其之壱

    这题我们只需要判断当前这个序列是否存在上一个字典序即可,这里可以用到一个叫做prev_permutation(a,a+n)的一个函数,它可以用来输出上一个序列,所以只需要用它判断一下是否存在上一个字典 ...

  5. 洛谷——P2524 Uim的情人节礼物·其之弐

    P2524 Uim的情人节礼物·其之弐 题目描述 前传:详见洛谷P2525 Uim成功地按照顺序将礼物送到了N个妹子的手里并维持她们的和谐. Uim现在想知道,他最终选择的顺序是所有给N个妹子送礼顺序 ...

  6. Uim的情人节礼物·其之弐(洛谷-P2524)

    题目描述 Uim成功地按照顺序将礼物送到了N个妹子的手里并维持她们的和谐. Uim现在想知道,他最终选择的顺序是所有给N个妹子送礼顺序中.字典序第几小的. 输入输出格式 输入格式: 第一行一个整数N, ...

  7. html玫瑰花效果代码,html5渲染3D玫瑰花情人节礼物js特效代码

    情人节马上就要到来了,这里给程序员前端设计师们献上一个,html5渲染而成的3D玫瑰花js效果,可以作为虚拟的情人节礼物送给自己的爱人.支持html5的浏览器查看. 查看演示 下载资源: 16 次 下 ...

  8. 准备情人节礼物比写代码难?来看看IT直男给女友们的礼物

    今天是情人节,据说IT直男在每个这样弥漫着恋爱气息的日子里都能把礼物送成"辣眼睛"现场,为了反(zheng)驳(shi)这个观点,小编特意走访了网易云的架构师.工程师.产品经理.程 ...

  9. 情人节礼物------用她的照片和我们的聊天记录生成词云~

    用到的知识点 python读写文件 python正则表达式过滤无用信息 jieba分词与自定义字典 停用词筛选.统计词频 调用wordcloud绘制词云 第一步 从电脑版蛐蛐导出聊天记录.(手机一般不 ...

  10. 情人节 礼物TOP10

    又是一年情人节,我的心又开始了那种熟悉的焦虑.也许你觉得像我这样一个男子汉如此矫情会让人受不了,但我却一点都不难为情,为了她,为了我的真心的爱. 于是,在这样的一个夜晚,我翻遍了内心的每一个角落,开始 ...

最新文章

  1. [4] 算法之路 - 插入排序之Shell间隔与Sedgewick间隔
  2. numpy.ma详解
  3. corosync+pacemaker+nfs提供mysql高可用
  4. 湖南大学第十五届程序设计竞赛
  5. 议rman的crosscheck和obsolete
  6. SpringBootAdmin监控信息讲解
  7. 下载丨58页PDF,云和恩墨技术通讯(2020年12月刊)
  8. 关于云主机拷贝复制资源异常的处理办法
  9. c语言使用位运算符包含头文件,C语言的运算符
  10. ubuntu 创建容器 并ssh 连接容器
  11. 前端特效-霓虹灯按钮
  12. OC学习笔记之011IOS应用开发入门--控件2进度条、拖动条、警告框、日期选择器、选择器
  13. mysql cmake ncursor_在移植的过程中主要会用到boost库、cmake工具以及wt库的编译。...
  14. 企业如何做好网址安全,防止入侵。
  15. Android水平仪实训报告,水准仪测量实训报告
  16. 【2016浴雨沐风】(第一篇)
  17. 在Linux中开机自动运行普通用户脚本程序
  18. 正点原子Alpha Linux开发板相关资料分享
  19. 我,程序员,告诉你年薪30万的程序员转行后,都去做什么工作了
  20. 计算机毕业设计SSM大学生项目众筹系统【附源码数据库】

热门文章

  1. 《啊哈,C语言》 第一章课后习题练习记录
  2. Python教学视频(九)math模块的使用
  3. 世界超级计算机比赛,【启明之星】何斌:刷新超级计算机比赛世界纪录
  4. 两个平面的位置关系和判定方程组解_精品获奖教案 1.2.4平面与平面的位置关系(2)教案 苏教版必修2...
  5. 前端 视频标签 video的一些特殊属性详解
  6. mcgs 云服务器,MCGS软件系统的组态环境和运行环境
  7. onenote导入html文件,OneNote加入:获取HTML内容
  8. ABC三类地址、子网掩码及子网划分
  9. 如何在没有原工程的情况下,利用vivado将bit文件转化成bin文件
  10. hi3559_imx334_sensor修改配置1080P60