AtCoder Beginner Contest 215 C - One More aab aba baa
作者:互联网
又来写一些蒻基题的蒻基题解
题目传送门
题目(翻译过了哦)
找出字符串 \(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)\) orz
超级快,官方的题解第二个版本也用了一样的代码
放上代码
#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;
}//完结撒花
标签:AtCoder,215,题目,Beginner,aba,题解,样例,next,输入 来源: https://www.cnblogs.com/joshuahxz210/p/15191547.html