原题链接:
https://nanti.jisuanke.com/t/39614

题意:
给出一个长度为n的字符串,找出其中长度为k的字典序最小的子序列。

题解:
设串长为n,则只需删掉 n-k个字符。
用一个单调栈维护,依次将字符串的每个字符插入,如果当前删掉的字符不足 n-k个并且栈顶
元素大于插入的元素,那么删掉栈顶,直至删掉的字符达到n-k或者满足单调栈的性质。
最后取栈里前k个字符输出即可。时间复杂度O(n)左右。

附上AC代码:

#include <bits/stdc++.h>using namespace std;const int maxn=5*1e6+5;char st[maxn];int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);string s;int k;cin>>s>>k;int n=s.length();//获取长度st[0]=s[0];//将第一个字符压入栈中,作为初始化int cnt=1,del=0;int i=1;while(i<n){while(s[i]<st[cnt-1]&&del<n-k)//当栈顶元素大于插入元素,并且删除字符不足n-k{cnt--;//弹出栈顶元素del++;//删除字符数+1}if(cnt<k)//如果还可以插入则插入st[cnt++]=s[i];else//否则相当于删除插入字符del++;i++;}for(int i=0;i<cnt;i++)//按序输出cout<<st[i];return 0;
}

欢迎评论!

计蒜之道2019 复赛 D-星云系统(单调栈)相关推荐

  1. [计蒜之道2019 复赛 A]外教 Michale 变身大熊猫 (线段树求LIS+思维)

    外教变身萌翻小学员,VIPKID "AR 变脸" 打造趣味互动课堂,这是在线少儿英语品牌 VIPKID 全新推出的辅助教学功能--AR 变脸,外教在上课过程中可以随意选取合适的表情 ...

  2. 计蒜之道2019 复赛 A.外教 Michale 变身大熊猫 线段树辅助建分层图dp

    题意:给出一个序列,随机取出其中一条最长上升子序列,问你取到每个数的概率是多少. 说起概率,我们可以尝试去求最长上升子序列的个数,显然每个点被取到的概率是 含有这个点的最长上升子序列个数/总共最长上升 ...

  3. 2016计蒜之道复赛 微信钱包付款

    2016计蒜之道复赛  微信钱包付款 一.题意: 微信钱包付款 给定n(0≤n≤10​10000),求a,,b,c使得a+b+c=n,并且f(a)=f(b)=f(c),f(n)定义为n的各数位的和,例 ...

  4. 计蒜之道2015程序设计大赛初赛第三场——腾讯手机地图

    计蒜之道2015程序设计大赛初赛第三场--腾讯手机地图 (一)题面 腾讯手机地图的定位功能用到了用户手机的多种信号,这其中有的信号的作用范围近,有的信号作用的范围则远一些.有的信号相对于用户在不同的方 ...

  5. 2017 计蒜之道 初赛 第一场 A题B题

    阿里九游开放平台近日上架了一款新的益智类游戏--成三棋.成三棋是我国非常古老的一个双人棋类游戏,其棋盘如下图所示: 成三棋的棋盘上有很多条线段,只能在线段交叉点上放入棋子.我们可以用坐标系来描述棋盘: ...

  6. 2020 计蒜之道 预赛 第一场 A. 五子棋

    2020 计蒜之道 预赛 第一场 A. 五子棋 题目链接 计蒜之道程序设计大赛已经迎来了第六届,蒜头君很开心,决定带上好友们一起下一把 五子棋,并由自己来担任裁判.五子棋的规则为:双方分别使用黑白两色 ...

  7. 2016 计蒜之道 初赛 第五场

    2016 计蒜之道 初赛 第五场 腾讯推出了一款新游戏:勇者的故事.在游戏里有一个勇者,要去挑战大魔王.大魔王有 nnn 支护卫队,第 iii 支护卫队里有 mim_im​i​​ 只恶魔.勇者和恶魔都 ...

  8. 2019 计蒜之道 复赛 D——“星云系统”(单调栈||队列+贪心)

    19.97% 1000ms 131072K VIPKID 是在线少儿英语教育平台,网络稳定是在线教育课程质量的红线,VIPKID 为此推出了全球最稳定的教育网络系统 -- "星云系统&quo ...

  9. 2019年第五届计蒜之道复赛总结

    又是一年计蒜客,沙雕ACMer欢乐多 热心市民yzm10按捺不住冲动,在期末期间又打了一场比赛. 赛点:204(与罚时惊人的相似) 做完两题排在一百多名,以为稳了(其实后面做不动了)比到一半就开始挂机 ...

最新文章

  1. 几款Java手机看书软件(一)
  2. Linux下安装Redis数据库
  3. ubuntu下minicom的安装及使用
  4. Windows Redis3 安装
  5. java中string类的常用方法举例说明
  6. 鸿蒙造化什么意思,大家说鸿蒙造化决,和鸿蒙天地有关系吗
  7. 从GDPR和个保法看,为什么要做数据合规?
  8. wps可以登录网页版_wps网页版入口_WPS个人免费版_点点游
  9. 无桥PFC的优势及解决方案
  10. java swing实现的简单音乐播放器源码附带视频指导教程
  11. 力扣347——前K个高频元素
  12. Aborted(core dumped)
  13. react通过hook实现父组件调用孙子组件方法(非redux)
  14. 维度建模——维度建模与数据仓库概述
  15. [pandas基础]Pandas Series和Pandas DataFrame基础操作
  16. WinCE流驱动基础知识小结
  17. Error response from daemon: readlink /var/lib/docker/overlay2/l/OEK3ESNVLXTTUOL6PIEXF2S6VF: invalid
  18. phpcms-前台模板调用和后台模板调用
  19. SOA 和微服务有何区别?
  20. git使用之fatal: Authentication failed for 【】异常

热门文章

  1. 面试10家拿到了7家Offer,到底经历了什么?
  2. 台式计算机虚拟内存怎么设置,电脑虚拟内存怎么设置
  3. 机原、机设的主干知识_简要复习笔记
  4. w10不能访问网络计算机,win10系统无法访问局域网电脑的具体教程
  5. access9磅字体是多_word字体中几号字与多少磅的对应关系
  6. 泰山OFFICE技术讲座:行距,五号、小四时还正常,四号时大幅增加,这是为什么?
  7. 网易前端微专业,JavaScript程序设计:JS调试
  8. NoSQL数据库知多少--KV存储数据库LevelDB
  9. pads option选项卡下部分英文释义
  10. Photoshop如何使用绘画和图像修饰之实例演示?