G. Maximize the Remaining String

贪心,放置时,如果前面一个小比他小,并且后面还有,那么就把前面的删除
#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 3;
#define int long long
string str;
char ans[N];
map<char,int>mp,vis;
signed main()
{int t;cin>>t;while (t--){int cnt = 0;cin>>str;int n = str.length();str = "1"+str;vis.clear(),mp.clear();memset(ans,0,sizeof ans);for (int i=1;i<=n;i++){mp[str[i]]=i;//记录最后一个在哪出现}for (int i=1;i<=n;i++){if (vis[str[i]]) continue;//如果前面出现了while (ans[cnt]<str[i]&&mp[ans[cnt]]>i)//如果他比这个字符小并且后面还有vis[ans[cnt--]] = 0;ans[++cnt] = str[i];vis[str[i]] = 1;}for (int i=1;i<=cnt;i++)cout<<ans[i];cout<<endl;}
}

1506G. Maximize the Remaining String相关推荐

  1. CodeForces - 1506G Maximize the Remaining String(单调栈+贪心)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的字符串,假设共出现了 kkk 种字母,现在要求出一个长度为 kkk 的子序列,满足每种字母只出现一次,且字典序最大 题目分析:和之前牛客上的一道 ...

  2. Codeforeces #710 div3题解报告

    A. Strange Table 题意:给你一个矩阵(n*m)的.这个矩阵从上到下由1,2,3````n * m填满. 再给你一个数x.问你在另一个矩阵(也是n * m,不过是从水平填起),这个x的位 ...

  3. 1050 String Subtraction

    1050 String Subtraction (20 分) Given two strings S​1​​ and S​2​​, S=S​1​​−S​2​​ is defined to be the ...

  4. PAT甲级 -- 1050 String Subtraction (20 分)

    Given two strings S​1​​ and S​2​​, S=S​1​​−S​2​​ is defined to be the remaining string after taking ...

  5. 1050 String Subtraction (20 分)_10行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given two strings S​1​​ and S​2​​, S=S​1​​−S​2​​ is defined to be ...

  6. C++ PAT甲级 1050 String Subtraction (20分)

    Given two strings S​1 and S​2, S=S1−S​2is defined to be the remaining string aftertaking all the cha ...

  7. PAT甲级1050 String Subtraction

    题目 1050 String Subtraction (20 分) Given two strings S​1 and S​2 , S=S1−S2 is defined to be the remai ...

  8. 1050 String Subtraction

    1050 String Subtraction Given two strings S1 and S2, S=S1−S2 is defined to be the remaining string a ...

  9. java获取hdfs总大小_如何获取出HDFS已用空间/总空间的值。java FileSystem中有相关的方法吗???...

    展开全部 public List getHdfsstatus() { if (conf == null) { conf = new Configuration(); conf.set("fs ...

最新文章

  1. 上网行为管理产品选型简单考量
  2. 一次I/O问题引发的P0重大故障[改版重推]
  3. svd奇异值分解_矩阵相乘和奇异值分解(SVD)
  4. linux 远程执行shell 获取返回值
  5. Python语法中的模糊语义,你知道吗?
  6. thinkphp 微信服务器验证代码_基于ThinkPHP5微信后台管理平台
  7. 下载腾讯视频里的视频_手机腾讯视频如何升级新版本
  8. linux 7 nano,Linux初學(CnetOS Linux7)之文本編輯器nano以及關機
  9. JMeter性能测试中如何使用“用户参数”实现参数化
  10. 利用 Excel 在 Altium Designer 中快速新建元器件库
  11. 从0开始学习 GitHub 系列之「06.团队合作利器 Branch」
  12. 老调重弹:对kvo的封装思路
  13. 倒车雷达c语言编程,汽车倒车雷达系统的设计与实现(论文c1)
  14. ubuntu下好用的TCP/UDP调试工具
  15. 下载精确卫星星历文件 2015.3.31
  16. ## STAMP使用中数据上传注意事项
  17. s3c6410地址映射
  18. 石油化工行业智能供应链管理系统解决方案:数智化供应链平台推动企业转型智能化发展
  19. SpringBoot无法引入@RunWith注解解决方法
  20. 为什么我不看好人人网在美国上市

热门文章

  1. Vista SP1、IIS7,安装ASP.Net 1.1、VS2003、NetAdvantage 2004vol、Sql Server2000全攻略
  2. hexo 环境变量_小白使用 Github + Hexo 从 0 搭建一个博客
  3. 基于Docker的Redis集群简单搭建
  4. ConcurrentHashMap底层原理?
  5. jsr-303 参数校验-学习(转)
  6. cesium 设置地球默认区域为中国 一键返回默认区域
  7. android默认代码混淆,Android SDK默认混淆配置文件
  8. php openssl做什么,php开启openssl的方法
  9. 一、Insertion sort
  10. (JAVA)hashcode