CF1886
分类讨论。
二分。
题意:给定一个字符串 \(s\)。记 \(s_i\) 为将 \(s\) 删去 \(i\) 个字符,使得剩余字符串字典序最小得到的字符串。令 \(S=s_0+s_1+\dots+s_{sz-1}\)。现在要询问 \(S[pos]\) 是哪个字符。
通过一些取模,加减可以求出,我们是要求 \(s_{x}\) 的第 \(y\) 个字符。
要字典序最小,显然应该删去最靠前的,比后一个字符大的字符。
这个操作类似单调栈,我们就按单调栈依次加入字符,如果栈顶比现在的大,就 pop,同时记录删去了多少个字符。
一个字符串 \(s\),初始为空。将 \(1\sim n\) 按某种顺序加入一个序列中,除了第一个元素外,执行以下操作:
如果新加入元素是最小值,在 \(s\) 末尾加一个
<;是最大值,加一个
>;否则加一个
?。
现在告诉你最后的 \(s\),你需要回答有多少种加入顺序能满足 \(s\)。另外,还有 \(m\) 次单点修改,每次将 \(s\) 的一个字符改成 >,<,? 中一个。需要在每次修改后都回答一次答案。
将加入序列反过来,看作在 \(1\sim n\) 中删除元素。发现如果是 >,<,只有一种方案;而 ? 的方案数就是当前个数 - 2。所以若 \(s_i=?\),则 \(ans\times (i-1)\) 即可。
还有个问题:若 \(s_1=?\),\(ans=0\)。所以还需要记录 \(ans2\) 为 \(s_{2\sim n}\) 的答案。
随机推荐
- P1032
写这道不算难的题目是我遇到了不少问题,复述以下过程吧. 由于数据很水,这道题用不到KMP算法,只要使用朴素算法进行字符串比对就可以了. 1 首先,我错误的选择了dfs算法,导致了TLE的发生.这类求最 ...
- hdu 5234
题意:求在不超过k的情况下,最多可以得到多少价值. 三维dp,结合01背包,第三维就是用来保存在不同的背包容量下能得到的最大价值,也就是第三维有很多状态. #include<iostream&g ...
- FGC频繁导致CPU 飙升定位及JVM配置优化总结
本文为博主原创,未经允许不得转载: 目录: 1. 定位消耗cpu 的服务进程和线程 2. 定位FGC 的原因 3. 定位jvm 参数是否导致FGC 4. 调试最优解的 jvm 配置 描述:项目中存在一 ...
- [js] - 导航展出动画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【PHP】 延时跳转
echo "<meta http-equiv=\"refresh\" content=\"5;url="."register.php& ...
- 单元测试中如何Mock HttpContext
最近团队有小伙伴问在单元测试中如何Mock HttpContext. 这是一个好问题,整理了一个实现方案分享给大家. 在C#中,尤其是在单元测试场景下,模拟(Mocking)HttpContext 是 ...
- [转帖]常用bash脚本功能
https://cloud.tencent.com/developer/article/1906536 1.判断curl返回状态码 #!/bin/bash response=$(curl -sL -o ...
- [转帖]JVM性能调优工具2之jcmd详解(覆盖全网最全的jcmd命令与说明文档)
上篇文章里<JVM常用性能调优工具详解1>我们已经探究了jps.jstat等监控工具,以及jinfo.jmap.jstack.jhat等故障排查工具,这里我单独拿出一篇文章,特别介绍jcm ...
- Nginx日志规则以及根据日志进行性能问题判断的思路
Nginx日志规则以及根据日志进行性能问题判断的思路 背景 Nginx是开源方案里面能实现反向代理 负载均衡的首选. 但是有时候性能出问题比较难以分析和定位, 不知道是不是nginx的瓶颈 性能问题的 ...
- Redis不同版本性能研究
Redis不同版本性能研究 背景 前期同事遇到了一个大key的慢查询. 前提条件是: 一个 60万key的环境里面. 有一个 260万元素的set类型的key 产品经常会进行 smember key ...