POJ 1833 STL容器運用

2021-05-24 00:52:44 字數 1142 閱讀 1375

排列

time limit:1000ms

memory limit:30000k

total submissions:9466

accepted:4183

description

題目描述:

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

3

3 12 3 1

3 13 2 1

10 2

1 2 3 4 5 6 7 8 9 10

sample output

3 1 2

1 2 3

1 2 3 4 5 6 7 9 8 10

source

qinlu@poj

原來next_permutation可以這樣用。。

source code

problem:1833

user:bingshen

memory:148k

time:485ms

language:c++

result:accepted

STL常用容器(七)set multiset容器

簡介 本質 set和multiset區別 功能描述 建立set容器以及賦值 構造 賦值 include void printset set int s cout endl 構造和賦值 void test01 intmain 總結 功能描述 函式原型 include void printset set...

POJ1091 跳蚤 容斥

解題報告 設數字分別為a1 a2,a3 m 那麼若方程x1 a1 x 2a2 xn 1m 1有解 則這張卡片可行。而此方程有解的充要條件為gc d a1 a2,a3 m 1 所以本題即為求gc d a1 a2,a3 m 1 1 a 1,a2 a3 an m 的方案數。那麼可以反著求gc d a1 a...

poj2773 容斥原理

這個題的意思是給你兩個數m,k,讓你求出與m互質的第k個數,設想對於乙個數r,我們可以求出小於等於r與m互質的數的個數,那麼我們就可以使用二分很快的求解。假設我們把m唯一分解 m p1 a1 p2 a2 pi ai,那麼小於等於r與m互質的數中不應該有p1 p2 pi這些因子,因此問題轉化成求解小於...