小沙の串串
思路
先用单调栈进行贪心,保证前面是递增的。
但是最后还不一定是最优的,还的对结果进行调结
这个模拟就很棒
代码
#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; } //这个模拟就很简洁明了了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】