小沙の串串

小沙の串串

思路

先用单调栈进行贪心,保证前面是递增的。
但是最后还不一定是最优的,还的对结果进行调结
这个模拟就很棒

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
int n,m;
string s,ans,tmp;
cin>>n>>m>>s;
for(auto i:s) {
while(m&&ans.size()&&ans.back()<i) {//这里确实是一个单调栈
tmp.push_back(ans.back());
ans.pop_back();
m--;
}
ans.push_back(i);
}//首先是贪心进行直接排序就可以了
while(m&&ans.size()) {//前面是单调栈,但并不一定代表已经最优,还需要微调
m--;
tmp.push_back(ans.back());
ans.pop_back();
}
sort(tmp.rbegin(),tmp.rend());
ans+=tmp;
cout<<ans;
return 0;
}
//这个模拟就很简洁明了了
posted @   basicecho  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示