滞留卡常题

news/2025/11/15 17:23:42/文章来源:https://www.cnblogs.com/tony0530/p/19225878
#include <bits/stdc++.h>using namespace std;const int N = 2e5 + 10;
const int M = N << 2;int n, cnt[27], a[N][27];
int tr[M][27], tag[M][27], pos[M][27];
int sum;
string str;void pushup(int op, int u)
{tr[u][op] = max(tr[u << 1][op], tr[u << 1 | 1][op]);if(tr[u << 1][op] >= tr[u << 1 | 1][op]) pos[u][op] = pos[u << 1][op];else pos[u][op] = pos[u << 1 | 1][op];
}void build(int op, int u, int l, int r)
{int mid = l + r >> 1;if(l == r){tr[u][op] = a[mid][op];pos[u][op] = mid;return;}build(op, u << 1, l, mid);build(op, u << 1 | 1, mid + 1, r);pushup(op, u);
}void modify(int op, int u, int L, int R, int c, int l, int r)
{if(L <= l && r <= R){tr[u][op] += c;tag[u][op] += c;return;}if(tag[u][op]){tag[u << 1][op] += tag[u][op];tr[u << 1][op] += tag[u][op];tag[u << 1 | 1][op] += tag[u][op];tr[u << 1 | 1][op] += tag[u][op];tag[u][op] = 0;}int mid = l + r >> 1;if(L <= mid) modify(op, u << 1, L, R, c, l, mid);if(R > mid) modify(op, u << 1 | 1, L, R, c, mid + 1, r);pushup(op, u);
}int ps;int qmax(int op, int u, int L, int R, int l, int r)
{if(L <= l && r <= R){ps = pos[u][op];return tr[u][op];}int mid = l + r >> 1;if(tag[u][op]){tag[u << 1][op] += tag[u][op];tr[u << 1][op] += tag[u][op];tag[u << 1 | 1][op] += tag[u][op];tr[u << 1 | 1][op] += tag[u][op];tag[u][op] = 0;}int ans = 0;if(R > mid) ans = max(ans, qmax(op, u << 1 | 1, L, R, mid + 1, r));if(L <= mid) ans = max(ans, qmax(op, u << 1, L, R, l, mid));return ans; 
}void query()
{int ans = sum - n;int pt = 1;for(int i = 2 ; i <= 26 ; i ++ ){int max_ = qmax(i, 1, pt, n, 1, n);if(max_ <= 0) break;ans -= max_;pt = ps;}cout << ans << '\n';
}
int main() 
{freopen("lock.in", "r", stdin);freopen("lock.out", "w", stdout);ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int q, op;cin >> op >> q;cin >> str;n = str.size();str = ' ' + str;for (int i = n ; i >= 1 ; i -- ){cnt[str[i] - 'a' + 1]++;sum += str[i] - 'a' + 1;int nsum = 0;for (int j = 26 ; j >= 1 ; j -- ){nsum += cnt[j];a[i][j] = nsum - (n - i + 1 - nsum);}}for (int i = 1; i <= 26; i++) build(i, 1, 1, n);query();while (q--) {int k;char x;cin >> k >> x;sum -= str[k] - 'a' + 1;for (int i = 1; i <= str[k] - 'a' + 1; i++) modify(i, 1, 1, k, -1, 1, n);for (int i = str[k] - 'a' + 2; i <= 26; i++) modify(i, 1, 1, k, 1, 1, n);str[k] = x;sum += x - 'a' + 1;for (int i = 1; i <= x - 'a' + 1; i++) modify(i, 1, 1, k, 1, 1, n);for (int i = x - 'a' + 2; i <= 26; i++) modify(i, 1, 1, k, -1, 1, n);query();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/966399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年推拉窗源头厂家权威推荐榜单:性价比门窗/系统窗/自建房门窗源头厂家精选

在绿色建筑与家居升级需求的双重驱动下,中国推拉窗市场正迎来品质与技术并重的发展新阶段。选择合适的推拉窗源头厂家,已成为保障建筑品质与居住体验的关键决策。 推拉窗作为现代建筑中应用最广泛的门窗类型之一,其…

Cursor ai network issue workaround in Ubuntu 22.04

Cursor ai network issue workaround in Ubuntu 22.042025-11-15 17:15 蜡笔小旧 阅读(0) 评论(0) 收藏 举报之前用Cursor一切都正常, 偶尔大家也会报一些网络问题, 后面升级后一直断断续续能用, 偶尔不能用,…

2025 年漆渣脱水设备厂家最新推荐榜单:优质品牌厂家工艺系统装置全解析,助力企业高效环保处置漆渣脱水系统/漆渣脱水机/漆渣脱水装置厂家推荐

引言 在涂装行业环保治理中,漆渣脱水效率直接决定废水回用率与危废处置成本,传统设备存在的适配性差、含水率高、能耗超标等问题已难以满足严苛监管要求。本次榜单依托国际环境技术协会(IETA)最新测评体系,结合全…

2025 最新喷漆废水处理公司推荐!喷漆废水处理设备 / 药剂 / 工艺 / 循环回用系统优质品牌榜单,含技术改造与运维服务厂家优选

引言 涂装行业产生的喷漆废水因含油漆颗粒、有机溶剂等复杂污染物,成为工业环保治理的重点难题,不合格排放将引发严重环境风险与合规危机。随着全球环保标准持续升级,优质处理方案的需求愈发迫切,而市场产品良莠不…

[KaibaMath]1024 丑陋的真子集符号⫋的由来

下面给出丑陋的真子集符号⫋的由来。该调查完成于2021年10月1日。

安装Ubuntu

View Post安装UbuntuUbuntu安装 图形化显示 1.更新系统软件 sudo apt update && sudo apt upgrade -y2.安装 Open VM Tools sudo apt install open-vm-tools-desktop -y重启 sudo reboot3.安装桌面环境 sudo a…

完整教程:VScode 入门(设置篇)

完整教程:VScode 入门(设置篇)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

微服务架构中的 Token 工作机制详解

引言 在微服务架构中,用户身份认证和授权是系统安全的核心挑战。由于服务被拆分成多个独立的微服务,传统的基于 Session 的认证方式无法满足分布式环境的需求。Token 机制(特别是 JWT)成为微服务架构中实现无状态身…

[KaibaMath]1023 柯西不等式的简洁证明

柯西不等式是数学中最基础的不等式之一,建立了“平方和的乘积”与 “乘积和的平方”之间的不等关系,其形式简洁,实用性极强。下面给出其简洁证明。

2025 最新网架厂家权威排行榜:焊接球 / 螺栓球 / 大跨度等多类型网架实力企业最新推荐

引言 随着大型建筑、工业设施、公共场馆等项目的蓬勃发展,网架作为核心承重结构,其质量、精度与定制化能力直接决定工程成败。当前网架市场品牌繁杂,部分厂家存在技术滞后、产能不足、售后薄弱等问题,导致客户在选…

WEB集群-HTTP概述与Nginx部署

1.WEB集群-HTTP协议 1.HTTP概述默认端口是80HTTP超文本传输协议: 数据请求与响应传输:网站的数据如何传递给用户. 超文本:文本,图片,视频.... 用户打开网站后:网站如何传递数据给用户. 专业名字:数据请求与响应.请求re…

实战内容

JWTtoken的token过期问题 本地时钟与远程服务器时钟对应不上导致JWTtoken的异常过期问题。

2025 最新无缝钢管厂家推荐榜:国际测评认证 + 技术创新 + 全场景适配权威指南

引言 无缝钢管作为工业制造、能源输送等核心领域的关键材料,其品质直接影响下游产业安全运行。本次推荐榜基于国际钢铁协会(World Steel Association)与国际钢管行业协会(ISSF)联合 SGS、Intertek 两大检测机构的…

【Qt开发】多元素类控件(二)-> QTableWidget - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

BBS伪随机数生成器

Blum Blum Shub(BBS),由Lenore Blum、Manuel Blum和Michael Shub于1986年提出。BBS伪随机数生成器以其可证明的安全性而闻名,其安全性基于大整数分解问题的困难性 BBS生成器的数学基础 1. Blum整数 BBS生成器的核心…

[KaibaMath]1022 一道平面几何题的两种解法

本文给出一道平面几何题的两种解法。第一种解法基于初等数学,第二种则基于高等数学。(该题目的解答完成于2017年)

实用指南:从0开始了解kafka《第二篇 kafka的安装、管理和配置》

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

动态规划法

动态规划法一、按照动态规划法的求解步骤分析作业题目“数字三角形”: 1.1 根据最优子结构性质,列出递归方程式,说明方程式的定义、边界条件: 从三角形顶部出发,每次只能向下或向右下移动,最终到达底部时,找到一…

函数表达式:JavaScript中那些你不知道的优雅写法 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

11.15模拟赛

t1 小 \(\mathrm{L}\) 有一串 \(n\) 块宝石的项链, 它可以顺时针看成一个圆环, 即第 1 块宝石与第 2 块和第 \(n\) 块宝石相邻, 第 2 块宝石与第 1 块和第 3 块宝石相邻, 以此类推。 但不幸的是, 项链的宝石破碎了。每…