AtCoder Beginner Contest 215 C - One More aab aba baa
阿新 • • 發佈:2021-08-29
又來寫一些蒻基題的蒻基題解
題目傳送門
題目(翻譯過了哦)
找出字串 \(S\) 按字典排序的第 \(K\) 個字串。
資料約定
\(1\leqslant\vert S\vert\leqslant 8\)
保證 \(S\) 由小寫字母組成。
\(S\) 的字典排序至少有 \(K\) 個可能。
輸入案例
S K
樣例輸入1
aab 2
樣例輸出1
aba
樣例輸入2
baba 4
樣例輸出2
baab
樣例輸入3
ydxwacbz 40320
樣例輸出3
zyxwdcba
題目解析
這裡要用到一個不常用但很好用的函式:
next_permutation();
那這個函式是什麼呢?要怎麼用呢?
全排列函式,時間複雜度 \(O(1)\)
超級快,官方的題解第二個版本也用了一樣的程式碼
放上程式碼
#include<bits/stdc++.h>//萬能標頭檔案 using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);//取消同步流 string s;int k; cin>>s>>k; sort(s.begin(),s.end()); while(k-->1) next_permutation(s.begin(),s.end());//全排列 cout<<s; return 0; }//完結撒花