当前位置: 首页 > news >正文

滞留卡常题

#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.rkmt.cn/news/50527.html

相关文章:

  • Cursor ai network issue workaround in Ubuntu 22.04
  • 2025 年漆渣脱水设备厂家最新推荐榜单:优质品牌厂家工艺系统装置全解析,助力企业高效环保处置漆渣脱水系统/漆渣脱水机/漆渣脱水装置厂家推荐
  • [KaibaMath]1024 丑陋的真子集符号⫋的由来
  • 安装Ubuntu
  • 2025 最新无缝钢管厂家推荐榜:国际测评认证 + 技术创新 + 全场景适配权威指南
  • 【Qt开发】多元素类控件(二)-> QTableWidget - 实践
  • 实用指南:从0开始了解kafka《第二篇 kafka的安装、管理和配置》
  • AMD Instinct MI50 通过llama.cpp 在 ROCm7.0.2上运行
  • 如何成为高级的安卓逆向工程师 glm4.6
  • PyTorch实战(9)——从零开始实现Transformer - 教程
  • 常用设计模式:职责链模式
  • 2025 最新推荐!汽车喇叭网生产厂家权威排行榜:0.01MM 精度 + 全工艺保障,靠谱品牌专业甄选
  • PlotNeutralNet使用教程
  • 2025雅思培训课程排行榜:高提分课程定制机构深度解析
  • 11.10-11.15 总结
  • 2025年芹黄素实力厂家权威推荐榜单:芹菜苷元/芹菜素/芹菜素95%源头厂家精选
  • 2025年遥控平板车厂家权威推荐榜单:平板运输车/顶升电动平车/电动地平车源头厂家精选
  • 2025 年 11 月空气电加热器,法兰电加热器,土壤修复电加热器厂家最新推荐,聚焦资质、案例、售后的七家企业深度解读
  • C# 中,依赖注入(DI)的实现方式 - 教程
  • mns 1115
  • 2025 年 11 月温州电商财税律师,温州执行律师,温州法律顾问律师最新推荐,聚焦资质、案例、售后的七家机构深度解读
  • P2966 [USACO09DEC] Cow Toll Paths G 题解
  • 【System Beats!】第八章 异常控制流
  • oracle 优化
  • 2025 年筛选机厂家推荐:深圳市恩艾斯科技有限公司,光学筛选机的专业缔造者与行业深耕者
  • 对拍程序
  • 反编译通用流程
  • 2025 年 11 月超细碳酸钙,重钙,碳酸钙厂家最新推荐,产能、专利、环保三维数据透视!
  • 从工具理性到价值共生:开源链动2+1模式、AI智能名片与S2B2C商城体系的社会连接重构研究
  • 2025 年 11 月山东实验室净化装修,山东实验室净化工程,山东实验室净化车间最新推荐,聚焦资质、案例、售后的五家机构深度解读!