国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

POJ 1833 排列(STL之next_permutation函數)

2019-11-06 06:21:29
字體:
來源:轉載
供稿:網友

大家知道,給出正整數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個排列。

Sample Input

33 12 3 13 13 2 110 2 1 2 3 4 5 6 7 8 9 10

Sample Output

3 1 21 2 31 2 3 4 5 6 7 9 8 1

考察STL中的next_permutation的用法,注意用C輸入輸出,不然會超時。

#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<iterator>using namespace std;int s[2005];int main(){ int t,n,k; scanf("%d",&t); while(t--) { int cnt=0; scanf("%d%d",&n,&k); for(int i=0;i<n;i++) scanf("%d",&s[i]); for(int i=0;i<k;i++) next_permutation(s,s+n);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 白玉县| 禄劝| 那坡县| 剑川县| 千阳县| 巍山| 博爱县| 湘潭市| 鹰潭市| 乌恰县| 双江| 眉山市| 凤庆县| 什邡市| 汕尾市| 綦江县| 佛山市| 海兴县| 易门县| 寻乌县| 新丰县| 离岛区| 孝感市| 麟游县| 出国| 太和县| 囊谦县| 开鲁县| 海兴县| 平利县| 绥江县| 安远县| 文水县| 正蓝旗| 抚顺市| 许昌县| 郓城县| 定日县| 华容县| 峨边| 手游|