擅长排列的小明(next_permutation)

来源:互联网 发布:监控设备域名 编辑:程序博客网 时间:2024/05/20 11:47

擅长排列的小明
时间限制:1000 ms | 内存限制:65535 KB
难度:4

描述
小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。

输入
第一行输入整数N(1

#include<iostream>#include<stdio.h>#include<algorithm>#include<stdlib.h>#include<string.h>#include<string>using namespace std;int reslut[10],isuse[10];int n,m ;int main(){    int ncase;    scanf("%d",&ncase);    while(ncase--)    {        scanf("%d%d",&n,&m);        string str = "";        string s ="";        for(int i =1;i<=n;i++)        {            str += '0'+ i;        }        s = str.substr(0,m);        while(next_permutation(str.begin(),str.end()))        {            string tmp = str.substr(0,m);            if(s != tmp)            {                s = tmp;                cout<<s<<endl;            }        }    }    return 0;}
原创粉丝点击