2025/10/27~2025/11/2 做题笔记 - sb

news/2025/10/27 16:59:21/文章来源:https://www.cnblogs.com/SuperSupper/p/19169589

2025/10/27

第一代图灵机

一样的套路,考虑每一个右端点对应的最左边可以到哪里,显然是最小的 \(j\) 使得 \(\max\limits_{j \le k \le i}pre_k = j - 1\)。考虑线段树维护一个区间内的最大的答案和最大的 \(pre_i\),但是发现当 \(pushup\) 的时候不好判断右区间对整个区间的贡献,所以需要维护一个区间中右半边区间对答案的贡献。不过最后可以发现一个区间内最大的答案也没什么用,没办法只通过它算出一个区间内指定一个最小 \(pre\) 的答案,还是只能用 \(pushup\) 算出来

Code
#include <iostream>
#include <set>using namespace std;
using ll = long long;
using pll = pair<ll, ll>;const int kN = 2e5 + 1;int n, m, q, c[kN];
set<int> s[kN];
ll a[kN];
struct Tr {int mx;ll val;
} tr[kN * 4];ll Pushup(int mx, int x, int l, int r) {if (l == r)return a[l] - a[max(mx, tr[x].mx)];int m = (l + r) / 2;if (mx > tr[x * 2].mx)return max(a[m] - a[mx], Pushup(mx, x * 2 + 1, m + 1, r));return max(tr[x].val, Pushup(mx, x * 2, l, m));
}
void Update(int p, int k, int x = 1, int l = 1, int r = n) {if (l == r)return tr[x].mx = k, void();int m = (l + r) / 2;if (p <= m)Update(p, k, x * 2, l, m);elseUpdate(p, k, x * 2 + 1, m + 1, r);tr[x].mx = max(tr[x * 2].mx, tr[x * 2 + 1].mx), tr[x].val = Pushup(tr[x * 2].mx, x * 2 + 1, m + 1, r);
}
ll Query(int mx, int nl, int nr, int x = 1, int l = 1, int r = n) {if (nl <= l && r <= nr)return Pushup(mx, x, l, r);int m = (l + r) / 2;ll res = 0;if (nl <= m)res = Query(mx, nl, nr, x * 2, l, m);if (nr > m)res = max(res, Query(max(mx, tr[x * 2].mx), nl, nr, x * 2 + 1, m + 1, r));return res;
}int main() {
#ifndef ONLINE_JUDGEfreopen("in", "r", stdin);freopen("out", "w", stdout);
#endifcin.tie(0)->sync_with_stdio(0);cin >> n >> m >> q;for (int i = 1; i <= m; i++)s[i].insert(0);for (int i = 1; i <= n; i++)cin >> a[i], a[i] += a[i - 1];for (int i = 1; i <= n; i++) {cin >> c[i];Update(i, *s[c[i]].rbegin()), s[c[i]].insert(i);}for (int op, l, r; q--;) {cin >> op >> l >> r;if (op - 1) {auto it = s[c[l]].find(l);if (next(it) != s[c[l]].end())Update(*next(it), *prev(it));s[c[l]].erase(l), c[l] = r;it = s[c[l]].lower_bound(l);if (it != s[c[l]].end())Update(*it, l);Update(l, *prev(it)), s[c[l]].insert(l);} else {cout << Query(l - 1, l, r) << '\n';}}return 0;
}

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

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

相关文章

echart - f

series: [{name: "直接访问",type: "bar",// 修改柱子宽度barWidth: "35%",data: [200, 300, 300, 900, 1500, 1200, 600],itemStyle: {// 修改柱子圆角barBorderRadius: 5}}]series中的…

完整教程:LinuxC++——etcd分布式键值存储系统入门

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

基于MATLAB的光学CCD全息成像仿真程序实现

基于MATLAB的光学CCD全息成像仿真程序实现一、流程 graph TD A[物光生成] --> B[参考光干涉] B --> C[全息图记录] C --> D[CCD光电转换] D --> E[电荷转移] E --> F[噪声注入] F --> G[信号重建]二…

el-date-picker样式修改

el-date-picker样式修改模板<el-col :span="12"><div class="detail-row flex-row"><span class="detail-label"><span style="color: red;margin-right: 4p…

我从哪里起飞 从哪里降落 多少不能原谅的错 却不能重来过

10.27 CF1988F Heartbeat P10440 [JOIST 2024] 环岛旅行 / Island Hopping P10439 [JOIST 2024] 逃生路线 2 / Escape Route 2

unity管理器设计:Manager of Managers

一、管理器Manager Manager管理器是对一类对象进行统一管理,像是UIManager,AudioManager,InputManager等。 UIManager对UI的生命周期进行统一管理,AudioManager对音频的播放进行统一管理,InputManager对玩家的输入…

iview table 排序 columns 里面写 sortable: custom 不要写 sortable: true 不然会进行二次内部排序序号等 字段。

iview table 排序 columns 里面写 sortable: custom 不要写 sortable: true 不然会进行二次内部排序序号等 字段。--------------------------------------------- 生活的意义就是你自己知道你要做什么,明确目标。没有…

决策不再凭感觉!Tita用数据驱动销售与交付的一体化协同

在当今激烈的市场竞争中,企业高层管理者们正面临一个普遍而棘手的难题:销售目标设定明确,但执行过程却总是脱节;客户信息散落在各个销售人员的Excel表和笔记本中,难以形成有效的客户洞察;销售过程缺乏透明化管控…

浅谈 Agent 开发工具链演进历程

模型带来了意识和自主性,但在输出结果的确定性和一致性上降低了。无论是基础大模型厂商,还是提供开发工具链和运行保障的厂家,本质都是希望提升输出的可靠性,只是不同的团队基因和行业判断,提供了不同的实现路径。…

为IvorySQL增添PACKAGE语法帮助

认识语法帮助 当使用psql工具登录数据库时,\h command可以查看语法帮助。比如查看create database语法: psql (17.6) Type "help" for help.ivorysql=# \h create database Command: CREATE DATABASE …

MATLAB 时间序列小波周期分析

1. 文件结构 WaveletPeriod/ ├── main_wavelet_period.m % 一键运行 ├── wavelet_power_spectrum.m % 小波功率谱 + 显著性 ├── period_peak_detect.m % 自动周期峰值 ├── plot_wavelet_results.m …

# 情绪日历应用(python AI项目)

📖 项目简介 这是一个基于人脸情绪识别的智能日历应用,能够:📅 记录你每天的情绪状态 😊 自动识别照片中的情绪 💬 提供情绪陪伴聊天 📊 统计月度情绪变化🏗️ 代码结构详解 1. 导入模块部分 - 程序的&q…

读《程序员修炼之道:从小工到专家》

读《程序员修炼之道》,仍被书中 “务实的程序员” 理念戳中。它没教复杂算法,却把成长拆成可落地的日常:像 “ DRY 原则” 让我改掉重复写工具类的习惯,“不要重复发明轮子” 提醒我先调研再动手,而 “持续学习”…

本地运行nginx服务,模拟线上环境访问项目

一、了解nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。 Nginx也是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行…

git提交远程项目步骤

git提交远程项目步骤一个比较复杂的情况 远程已经有了代码的前提下,我复制一份到本地修改,然后再提交到原仓库 分两种情况,一种是想全部覆盖远程的代码,另一种是只是在原代码基础上做了一些修改,只需要提交一下p…

基于Redis海量数据场景分布式ID生成实践

概述 在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决…

电梯调度算法结对编程作业

1、项目仓库地址:https://z.gitee.cn/zgca/repos/zgca/elevator_arrange/sources 2、项目简介 3、PSP表格 4、接口设计介绍 5、模块接口的设计与实现过程 6、结对编程过程中的问题总结 7、界面模块的详细设计过程 8、…

【完结22章】从0到1,LangChain+RAG全链路实战AI知识库

【完结22章】从0到1,LangChain+RAG全链路实战AI知识库 学习地址:……/s/1hIjOa9HEwE-81qiVg6TUyA 提取码:qe8c 在信息爆炸的时代,企业积累的文档、报告、代码和各类数据资产正以前所未有的速度增长。传统的知识管理…

分享精选文章合集 - 2025-10-27

分享精选文章合集 - 2025-10-27汇总2025-10-27的精品精选求职与招聘文章。大家好,我是jobleap.cn的小九。 今日热门信息 - jobleap4u.com 内容概览:共 100 篇内容(按发布时间倒序排列,数据源自提供的ArticleCollec…

20232416 2025-2026-1 《网络与系统攻防技术》实验三实验报告

20232416 2025-2026-1 《网络与系统攻防技术》实验三实验报告 1.实验内容 (1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧正确使用msf编码器,使用msfvenom生成jar、php等文件 veil,加壳…