假期训练——OpenJ_Bailian - 1833 排列 全排序
来源:互联网 发布:淘宝质量好的杂货铺 编辑:程序博客网 时间:2024/06/05 07:48
大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 1六个排列。
任务描述:
给出某个排列,求出这个排列的下k个排列,如果遇到最后一个排列,则下1排列为第1个排列,即排列1 2 3…n。
比如:n = 3,k=2 给出排列2 3 1,则它的下1个排列为3 1 2,下2个排列为3 2 1,因此答案为3 2 1。
33 12 3 13 13 2 110 21 2 3 4 5 6 7 8 9 10
3 1 21 2 31 2 3 4 5 6 7 9 8 10
我是直接利用C++
next_permutation
的函数,求下一个排列#include <iostream> #include <cstdio>#include <cstdlib>#include <cmath>#include <algorithm>#include <climits>#include <cstring>#include <string>#include <set>#include <map>#include <queue>#include <stack>#include <vector>#include <list>#define rep(i,m,n) for(int i=m;i<n;i++)#define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)const int inf_int = 2e9;const long long inf_ll = 2e18;#define inf_add 0x3f3f3f3f#define mod 1000000007#define pb push_back#define mp make_pair#define fi first#define se second#define pi acos(-1.0)#define pii pair<int,int>#define Lson L, mid, rt<<1#define Rson mid+1, R, rt<<1|1const int maxn=5e2+10;using namespace std;typedef vector<int> vi ;typedef long long ll;typedef unsigned long long ull; inline int read(){int ra,fh;char rx;rx=getchar(),ra=0,fh=1;while((rx<'0'||rx>'9')&&rx!='-')rx=getchar();if(rx=='-')fh=-1,rx=getchar();while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra*fh;}//#pragma comment(linker, "/STACK:102400000,102400000")ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);}ll qpow(ll p,ll q){ll f=1;while(q){if(q&1)f=f*p;p=p*p;q>>=1;}return f;}vi a;int T,n,k;int main(){cin >> T;while(T--){a.clear();cin >>n>>k;for(int i=0;i<n;i++){int t;cin >> t;a.push_back(t);}while(k--){if(!next_permutation(a.begin(),a.end())){sort(a.begin(),a.end());}}for(int i=0;i<a.size();i++){cout<<a[i]<<" ";}cout<<endl;}return 0;}
0 0
- 假期训练——OpenJ_Bailian - 1833 排列 全排序
- 假期训练——OpenJ_Bailian - 2745 显示器 模拟
- 假期训练——OpenJ_Bailian - 2950 摘花生 模拟
- 假期训练——OpenJ_Bailian - 4017 爬楼梯 动态规划
- 假期训练专题及模板——排序
- poj1833排序(STL)—全排列
- 全排列生成算法之一——字典排序算法
- 全排列—递归
- 面试训练字符串全排列
- 算法训练 全排列 JAVA
- 排序总结+全排列
- 递归全排序排列
- 全排列拓扑排序
- 排序函数-全排列
- 假期训练—— HDU - 4930 Fighting the Landlords 模拟
- 假期训练——HDU - 5965 扫雷 多情况考虑
- 假期训练——POJ - 1163 The Triangle dp
- 假期训练——UVA - 10036 Divisibility DP
- 使用spring-data-jpa的JpaRepository来进行类的db操作(配置)
- POJ 2488 A Knight's Journey (dfs)
- Tcp C/S架构实现聊天室(数组管理在线用户)(服务器)
- 【Android开发】App版本号
- 基于范德蒙矩阵的Erasure code技术详解
- 假期训练——OpenJ_Bailian - 1833 排列 全排序
- hadoop中使用java.util.ServiceLoader
- 调整数组顺序使奇数位于偶数前面
- 查找单词是否存在于单词表格中
- github的命令总结
- 2.0 STL泛型编程
- swfit 实现代理 和 单例
- NumberUtils的使用方法
- 假期训练——OpenJ_Bailian - 2950 摘花生 模拟