- 火星人
- 2009-07-17 14:03:03 @
看了5遍楞没看懂
4 条评论
-
Jessy LV 8 @ 2016-09-18 20:55:44
/*刚开始看还没理解题目意思,但是仔细一想才发现,其实 m的真正含义是讲n个数全排列第 m+1小的数
例如,m=1,样例中,那么输出的是第2小的,也可以说是除去本身之后全排列 第m小的排列组合*/
#include<cstdio>
#include<algorithm>
#include<iostream>
int n,m,num[10001];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i)scanf("%d",&num[i]);
for(int i=1;i<=m;++i)
{
//详见于 “代码大全 -中 -算法- next_permutation函数 ” 的代码/********************************************************************************有可能看不懂 next_permutation函数
附上 next_permutation函数的代码 正确理解 next_permutation函数 可见于网址:http://blog.sina.com.cn/s/blog_9f7ea4390101101u.html
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int n;
int a[n];
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
do
{
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
} while (next_permutation(a,a+5));//表示对前5个数进行排列,后面的数不管
//next_permutation(a,a+3) 为对前面前三个数排列组合
return 0;
}
*****************************************************************************************************************/
std::next_permutation(num+1,num+n+1);//第m次排列出来的
/*for(int i=1;i<=n;i++)printf("%d ",num[i]);
printf("\n");*/
}
// printf("\n");
for(int i=1;i<=n;++i)printf("%d ",num[i]);
return 0;
} -
2016-06-29 15:04:29@
哈哈哈哈哈
-
2013-03-30 12:00:14@
全排列啊
123
132
213
。。。 -
2009-08-13 09:21:22@
= =。
我也没看懂= =。
- 1