题解:CF1620C BA-String
fish_love_cat · · 题解
:::info[duel 纪要] flc 要刷勇者 tag,所以纠集 cyq,kdl,zjh 等人打 duel 准备 1v3 一题场。
遇到路人两个,zjh 摆烂不来,于是现在有五个人,但是路人之一去上厕所于是为了速度开房踢出一人。
开赛。哎简单场没优势拼手速。
我草这个键盘怎么自动键入 bie 啊!代码随机 CE 错位何以手速??
大战一会后 bie 没了。
我草这个键盘怎么自动键入 l 啊!
大战一会后 l 没了。
我草这个键盘怎么自动键入 v 啊!
kdl 坐在我旁边笑飞了,但过了一会后她的键盘开始随机键入 printf 了。
风水轮流转这回轮到我笑了哈哈……
何以战? :::
由于插入的是
复杂度线性。duel 被打爆了,怎么回事呢。
#include<bits/stdc++.h>
#define int long long
using namespace std;
void solve(){
int n,k,t;
cin>>n>>k>>t;
t--;
string s;
cin>>s;
if(t==0){
for(char c:s)
if(c=='a')cout<<'a';
cout<<'\n';
return;
}
vector<int>v;
int flc=0;
for(int i=0;i<s.size();i++)
if(s[i]=='a'){
if(flc)v.push_back(flc+1);
flc=0;
}else flc+=k;
if(flc)v.push_back(flc+1);
reverse(v.begin(),v.end());
vector<int>ret;
for(int i=0;i<v.size();i++){
ret.push_back(t%v[i]);
t/=v[i];
}
reverse(ret.begin(),ret.end());
bool flg=1;
int tp=0;
for(int i=0;i<s.size();i++)
if(s[i]=='a')cout<<'a',flg=1;
else if(flg){
flg=0;
while(ret[tp]--)cout<<'b';
tp++;
}
cout<<'\n';
}
signed main(){
int t;
cin>>t;
while(t--)solve();
return 0;
}
// 他将内心的嘀咕藏在自己擅长的笑容后头。