zoukankan      html  css  js  c++  java
  • 全排列 next_permutation()函数

    擅长排列的小明

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:4
    描述
    小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。
    输入
    第一行输入整数N(1<N<10)表示多少组测试数据,
    每组测试数据第一行两个整数 n m (1<n<9,0<m<=n)
    输出
    在1-n中选取m个字符进行全排列,按字典序全部输出,每种排列占一行,每组数据间不需分界。如样例
    样例输入
    2
    3 1
    4 2
    样例输出
    1
    2
    3
    12
    13
    14
    21
    23
    24
    31
    32
    34
    41
    42
    43
    
    
    只是next_permutation()的简单应用而已
    #include<stdio.h>
    #include<algorithm>
    #include<iterator>
    using namespace std;
    int main()
    {
    	int n,M,N;
    	
    	int last[10]={0};
    	scanf("%d",&n);
    	while(n--)
    	{
    		int a[10]={1,2,3,4,5,6,7,8,9};
    		scanf("%d%d",&M,&N);
    		do
    		{
    			if(!equal(a,a+N,last))
    			{
    				copy(a,a+N,last);
    				for(int i=0;i!=N;i++)//额,这里只需要输出前N个数字就可以了
    				{
    					printf("%d",a[i]);
    				}
    				puts("");
    			}
    		}while(next_permutation(a,a+M));
    	}
    } 
    
  • 相关阅读:
    Gym
    [APIO2014] 回文串
    python选课系统
    python面向对象之类成员修饰符
    python面向对象之类成员
    python的shelve模块
    python的re模块
    python的configparser模块
    python的sys和os模块
    python的hashlib模块
  • 原文地址:https://www.cnblogs.com/nanke/p/2048566.html
Copyright © 2011-2022 走看看