STL函式之全排列next permutation

2021-09-18 04:42:47 字數 860 閱讀 4623

牛牛的作業薄上有乙個長度為 n 的排列 a,這個排列包含了從1到n的n個數,但是因為一些原因,其中有一些位置(不超過 10 個)看不清了,但是牛牛記得這個數列順序對的數量是 k,順序對是指滿足 i < j 且 a[i] < a[j] 的對數,請幫助牛牛計算出,符合這個要求的合法排列的數目。

每個輸入包含乙個測試用例。每個測試用例的第一行包含兩個整數 n 和 k(1 <= n <= 100, 0 <= k <= 1000000000),接下來的 1 行,包含 n 個數字表示排列 a,其中等於0的項表示看不清的位置(不超過 10 個)。
輸出一行表示合法的排列數目。
示例1

5 5

4 0 0 2 0

2
#include#include#includeusing namespace std;

bool judge(vectorinput,int k)}}

return (result == k);

}int main()

for(int i = 1;i <= n;i ++)

}int noexistnum = noexistarray.size();

vectorindex(noexistnum);

for(int i = 0;i < noexistnum;i ++)

doelse if(input[i] == 0)

}if(judge(newinput,k))

}while(next_permutation(index.begin(),index.end()));

printf("%d\n",result);

return 0;

}

STL中的全排列函式實現全排列

標頭檔案 inlcude這裡先說兩個概念 下乙個排列組合 和 上乙個排列組合 對序列 每乙個元素都比後面的小,按照字典序列,固定a之後,a比bc都小,c比b大,它的下乙個序列即為,而的上乙個序列即為,同理可以推出所有的六個序列為 其中沒有上乙個元素,沒有下乙個元素。a.函式模板 next permu...

STL 全排列問題

擅長排列的小明 時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述小明十分聰明,而且十分擅長排列計算。比如給小明乙個數字5,他能立刻給出1 5按字典序的全排列,如果你想為難他,在這5個數字中選出幾個數字讓他繼續全排列,那麼你就錯了,他同樣的很擅長。現在需要你寫乙個程式來驗證擅長排...

全排列函式

一 next permutation 函式,作用是輸出所有比當前排列 排列大的排列 順序為由小到大排 include include includeusing namespace std int main string str cin str while next permutation str.b...