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}\) 的答案。
随机推荐
- P4837
日了啊,这道题每个输入中有多组输入,每处理完一组输入需要清空STL的stack类对象的啊.要是自己写的栈或许能想起来重新top=1,但是这用的STL现成的stack,就忘了while(!sk.empt ...
- 大数相乘 a*b
//zznu 1562//用数组模拟乘法计算的过程 #include<iostream> #include<stdio.h> #include<string.h> ...
- apicloud(沉浸式导航篇) - 手机状态栏 有黑边的解决办法
在 index.html 的 apiready 中加上 第一种 : 可设置全屏 api.setFullScreen({ fullScreen: true }); 第二种:设置状 ...
- nexus的简单安装与使用
nexus的简单安装与使用 文件下载 官网上面下载文件比较麻烦, 得科学一些 https://www.sonatype.com/download-oss-sonatype 选择oss 开源版进行下载 ...
- [转帖]使用 TiUP 部署 TiDB 集群
https://docs.pingcap.com/zh/tidb/stable/production-deployment-using-tiup TiUP 是 TiDB 4.0 版本引入的集群运维工具 ...
- [转帖]关于虚拟化中cpu的指令集SSE 4.2的不支持
背景: 局域网中有两台服务器proxmox进行了虚拟化,跑一些测试应用.今天正好想要安装一下clickhouse跑一下.安装前准备: 测试服务器是否支持sse 4.2指令集-如下 [root@slav ...
- [转帖]OS Watcher (OSW)系统性能监控软件
https://www.anbob.com/archives/1143.html OS Watcher简称OSW(oswbb),用于收集并归档操作系统cpu,memery,disk io,networ ...
- 一个简单的科普-延迟与RT时间
一个简单的科普-延迟与RT时间 背景 发现稍微一复杂就没人看. 这次像是写一个简单的科普文章. 主要说一下网络延迟还有网络的响应时间. 这里想通过一个题目进行引申. 如果Skylink全球商用: 中国 ...
- [转帖]vm内核参数之缓存回收drop_caches
注:本文分析基于3.10.0-693.el7内核版本,即CentOS 7.4 1.关于drop_caches 通常在内存不足时,我们习惯通过echo 3 > /proc/sys/vm/drop_ ...
- [转帖]拜托!面试请不要再问我Spring Cloud底层原理
https://www.cnblogs.com/jajian/p/9973555.html 概述# 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大 ...