cf246c

来源:互联网 发布:怪物猎人初音捏脸数据 编辑:程序博客网 时间:2024/04/30 05:33

题意给你n个数,然后用n个数构造k个不同的序列,每一个序列的数不能用两次,每个数都不同,n小于50,k<=((n+1)*n/2)
题解是我傻逼了。。。。。这个题。。。。。。我艹。。。。。
这么回事啊,就是它选取前x个数剩下的数随便选一个就行了。这种有(n - x)种方法。如此做来就有了那个数据范围

#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int a[100];bool cmp(int a , int b){    return a > b;}int main(){    int n , k , num = 0;    scanf("%d %d",&n , &k);    for(int i = 1 ; i <= n ; i++) scanf("%d",&a[i]);    sort(a + 1 , a + 1 + n , cmp);    int nl = 0;    while(num < k){        for(int i = ++nl ; i <= n ; i++){            printf("%d ",nl);            for(int j = 1 ; j < nl ; j++) printf("%d ",a[j]);            printf("%d\n",a[i]);            num++;            if(num == k) break;        }    }    return 0;}
0 0
原创粉丝点击