其他分享
首页 > 其他分享> > AtCoder Beginner Contest 215 C - One More aab aba baa

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