排列 STL
来源:互联网 发布:淘宝销量少的可以买吗 编辑:程序博客网 时间:2024/05/17 09:23
Description
题目描述:
大家知道,给出正整数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。
大家知道,给出正整数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。
Input
第一行是一个正整数m,表示测试数据的个数,下面是m组测试数据,每组测试数据第一行是2个正整数n( 1 <= n < 1024 )和k(1<=k<=64),第二行有n个正整数,是1,2 … n的一个排列。
Output
对于每组输入数据,输出一行,n个数,中间用空格隔开,表示输入排列的下k个排列。
心得:
这个题一下子错了好几遍才明白过来怎么错的!
do{
}while(); 跟while() {} 的小小区别中枪…………
wa了的代码:
心得:
这个题一下子错了好几遍才明白过来怎么错的!
do{
}while(); 跟while() {} 的小小区别中枪…………
wa了的代码:
#include<stdio.h>#include<string.h>#include<math.h>#include<string>#include<iostream>#include<algorithm>using namespace std;int a[1030];int main(){ //freopen("in.in","r",stdin); int T; scanf("%d",&T); while(T--) { int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%d",&a[i]); while(m>0) { do{ if(m==0) break; m--; }while(next_permutation(a,a+n)); //当next_permutation 当前为最大序列,不可继续排序,但m依旧 --; if(m>0) sort(a,a+n);m--; } for(int i=0;i<n-1;i++) printf("%d ",a[i]); printf("%d\n",a[n-1]); } return 0;}AC :
#include<stdio.h>#include<string.h>#include<math.h>#include<string>#include<iostream>#include<algorithm>using namespace std;int a[1030];int main(){ //freopen("in.in","r",stdin); int T; scanf("%d",&T); while(T--) { int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%d",&a[i]); while(m) { while(m&&next_permutation(a,a+n)) m--; if(m>0){ sort(a,a+n); m--; } } for(int i=0;i<n-1;i++) printf("%d ",a[i]); printf("%d\n",a[n-1]); } return 0;}
0 0
- 排列 STL
- STL 中的全排列
- STL 全排列 pku1833
- STL next_permutation 全排列
- C++ STL 排列算法
- c++ STL 生成排列
- STL-next_premunation(全排列)
- 排列中的STL
- POJ 1833 排列 (STL)
- STL 全排列
- STL之全排列
- STL之全排列
- [STL]next_permutation全排列
- stl实现全排列
- poj 1833 排列(STL)
- STL 全排列
- 全排列(STL)
- POJ 1833 排列 stl
- HDU 2865 Birthday Toy(Polya+矩阵乘法+dp)
- JSP(6):网站框架的改进mv模式(2)
- iOS-响应上下左右滑动手势
- 360浏览器 根据网页META 自动切换内核
- 关于IOS UITableView的动态高度问题
- 排列 STL
- 堆和栈究竟有什么区别?
- 非阻塞I/O–Java NIO教程
- 也谈谈权限管理:理想状态下的权限管理模型
- OCM_session0_手动建库_os5.4
- zoj1041
- 链表(一)链表的新建、反转、释放
- poj1182食物链(种类并查集)
- 搜索已丢失分区(重建分区表)