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}\) 的答案。
随机推荐
- hdu 5547
***题意:4*4数独,要求在同一行同一列不能有相同的数字,另外在2*2的小单元里也不能有相同的数字 思路:DFS暴力搜索, 每个位置填1-4,递归回溯,判断是否符合条件,递归到最后一个位置+1则输出 ...
- java项目实战-tomcat-SpringMVC-基本用法01-day25
目录 1. maven创建 war项目 2. SpringMVC 1. maven创建 war项目 什么是jar项目 什么是war项目? jar项目: 由main方法来开始的 直接依赖JVM就能编译运 ...
- 【MACRO】嵌入式实用的宏技巧 DEBUG-printf 、 #/##
from: C语言.嵌入式中几个非常实用的宏技巧 (qq.com) 宏打印函数 在我们的嵌入式开发中,使用printf打印一些信息是一种常用的调试手段.但是,在打印的信息量比较多的时候,就比较难知道哪 ...
- 2023 SHCTF-校外赛道 MISC WP
WEEK1 请对我使用社工吧 提示:k1sme4的朋友考到了一所在k1sme4家附近的大学,一天,k1sme4的朋友去了学校对面的商场玩,并给k1sme4拍了一张照片,你能找到他的学校吗? flag格 ...
- 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.27)
一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...
- [转帖]绕过CDN查看网站真实IP
https://www.itblogcn.com/article/viewcdnip.html 这是一个总结帖,查了一下关于这个问题的国内外大大小小的网站,对其中说的一些方法总结归纳形成. 首先, ...
- [转帖]TiDB 环境与系统配置检查
https://docs-archive.pingcap.com/zh/tidb/v6.0/check-before-deployment 本文介绍部署 TiDB 前的环境检查操作,以下各项操作按优先 ...
- [转帖]Shell 脚本实现应用服务日志入库 Mysql
今天给大家分享一个 shell 脚本工具,通过 shell 脚本与 mysql 的结合,将某个具体服务的错误输出日志入库到指定的 mysql 表中,以便于进行错误问题的定位与分析. 日常工作中,经常需 ...
- [转帖]PostgreSQL(三) 内存参数优化和原理(work_mem)内存表 pgfincore插件使用方法
1.常用内存参数 1.1 shared_buffers shared_buffers是PostgreSQL用于共享缓冲区的内存,是由8kb大小的块所形成的数组.PostgreSQL在进行更新.查询等操 ...
- [转帖]vs调试运行程序出现:“由于找不到MSVCP140D.dll,无法继续执行代码 ”的解决方法
碎碎念 最近在使用Visual studio调试程序的时候,突然冒出了"由于找不到MSVCP140D.dll,无法继续执行代码.重新安装程序可能会解决次问题."的错误.如下图所示. ...