edu 156 div2 c

news/2024/11/24 5:38:42/
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
void solve(){string s;cin>>s;//s =  s;ll t;cin>>t;//t--;ll pos,k;ll len = 0;for(int i = 0 ; i < s.length() ; i++){if(len + s.length() - i >= t){pos = t - len;//第几个字符k = i;//这段删除几个break;}else{len += s.length() - i;}}//cout<<pos<<k;//每次先将前面的删掉 , 先被删掉的应该是首个字典序小于的//如果s[i] < s[i-1]  就删掉 i - 1 是他目前存在的上一个string res;for(auto x : s){while (k > 0 && res.length() && x < res.back()){res.pop_back();k--;}res.push_back(x);}cout<<res[pos - 1];
}int main(){int t;cin>>t;while(t--){solve();}
}

先考虑如果让变化后的字符串最小,考虑

a b d a b c

观察到 再前面的位置使得字典序改变,字典序最小

当s[i] < s[i-1] 将i-1删除这样s[i] 就会到 i-1的位置

a b d a b c

a b a b c

观察删除后的字符串,发现并不需要从头开始计算,只需要从连接处在进行比较,

a b a b c

a a b c

可以通过一个单调栈进行维护,或者单链表也可以

计算一下最多删除多少个数


http://www.ppmy.cn/news/1145492.html

相关文章

【Codeforces】 CF1762E Tree Sum

题目链接 CF方向 Luogu方向 题目解法 首先考虑 n n n 为奇数的情况无解&#xff0c;这个可以通过乘积矛盾简单证明 接下来考虑一个结论是&#xff1a;偶数个点的树的形态确定之后&#xff0c;只有恰好 1 1 1 种染色方案&#xff0c;即从叶子一层一层往上面染&#xff0c;…

Python中套接字实现服务端和客户端3-3

3 创建客户端的步骤 创建客户端的步骤如图5所示。 图5 创建客户端的步骤 从图5可以看出&#xff0c;对于客户端来说&#xff0c;首先创建套接字&#xff0c;之后通过创建的套接字去连接服务端&#xff0c;如果连接成功&#xff0c;则继续通过该套接字向服务端发送数据&#x…

嵌入式系统开发【深入浅出】 GPIO 类设备的驱动程序

目录 GPIO管脚的输出功能相当于控制、输入相当于检测 使用GPIO基本流程 对于某一个管脚来说最多有几种功能&#xff1f; 拓展 【定时器与系统定时器】 决定定时长短的因素: 普通定时器 系统定时器 STM32F103RBT6的时钟源有哪五种 sysclk 的时钟频率由哪个时钟源提供基…

linux中命令行如何使用git

在Linux中&#xff0c;您可以使用命令行来使用Git版本控制系统。以下是一些常见的Git命令&#xff0c;用于在Linux终端中进行版本控制&#xff1a; 安装Git&#xff1a;如果您的Linux系统上还没有安装Git&#xff0c;可以使用适合您的包管理器来安装它。例如&#xff0c;在Ubu…

Typescript笔记:Number对象

Number 对象是原始数值的包装对象 var num new Number(value); 1 对象属性 Number.MAX_VALUE 可表示的最大的数&#xff0c;MAX_VALUE 属性值接近于 1.79E308。 大于 MAX_VALUE 的值代表 "Infinity"。 Number.MIN_VALUE可表示的最小的数&#xff0c;即最接近 0 的…

复旦管院启动科创战略,培养科技研发人才,引领未来发展!

今年夏天&#xff0c;600多位优秀的企业家成为复旦大学EMBA 2023级新生。在疫情结束后&#xff0c;他们选择百战归来再读书&#xff0c;重新回到久违的课堂&#xff0c;共同探索科创大时代下企业的商业本质&#xff0c;开启新的学习与人生旅程。复旦大学管理学院院长陆雄文教授…

MyBatis(上)

1、概述&#xff1a; MyBatis&#xff08;以前称为iBATIS&#xff09;是一个Java持久性框架&#xff0c;用于简化数据库访问和与关系数据库的交互。它提供了一种将数据库操作与Java应用程序的业务逻辑分离的方式&#xff0c;使开发人员能够更轻松地编写数据库访问代码。MyBatis…

(js)封装年月日获取方法,页面根据type判断显示当前年,年月,日期

(js)封装年月日获取方法&#xff0c;页面根据type判断显示当前年&#xff0c;年月&#xff0c;日期 项目src——>utils——>index.js // 获取当前年&#xff0c;年月&#xff0c;日期&#xff0c;type, export function getYearMonth(type) {var date new Date()var ye…