ABC432E sol

news/2025/11/15 22:55:14/文章来源:https://www.cnblogs.com/dg114514qwq/p/19226452

eazy ds problem.

题意

给你一个序列 $a$,需要支持单点加 & 全局求 $\max\left(l,\min(r,a_i)\right)$(也就是对于每个 $a_i$,当 $a_i<l$,造成 $l$ 的贡献;当 $a_i \ge r$ 时,造成 $r$ 的贡献;否则造成 $a_i$ 的贡献。)

题解

注意到 $a_i,b_i \le 5\times 10^5$,所以可以考虑使用两个权值树状数组(也就是一个树状数组做的桶)(这两个树状数组下文中分别称为 $sum$ 和 $cnt$)分别维护 $\sum\limits^k_{a_i \le k} a_i$ 以及 $\sum\limits^k_{a_i \le k} cnt_{a_i}$($cnt_i$ 为 $i$ 出现次数)。
然后就容易了。

  • 单点加就是单点修改 $sum_{a_x},cnt_{a_x},sum_y,cnt_y$。

  • 查询时需要特判 $l>r$ 输出 $nl$,否则

    • 对于所有小于 $l$ 的数,它们对和造成的贡献都是 $l$;
    • 对于所有大于 $r$ 的数,它们对和造成的贡献都是 $r$;
    • 其它数,它们对答案的贡献为它本身。

    发现前两类贡献用 $cnt$ 维护、最后一类贡献用 $sum$ 维护即可。

所以,我们在 $O((n+q) \log V)$ 的复杂度解决了此题。

注意:由于 query 可能访问到 $0$ 和 $-1$,所以下标通通 $+2$。

代码

#include<bits/stdc++.h>
#define int long long
#define rep(i,l,r) for(int i=l;i<=r;i++)
using namespace std;
int tr[500005],a[500005];
struct fenwick{int tr[500015];void upd(int x,int y){x+=2;while(x<=500005) tr[x]+=y,x+=x&-x;}int que(int x){x+=2;int r=0;while(x) r+=tr[x],x&=x-1;return r;}	
}cnt,sum;
signed main(){int n,q;cin>>n>>q;rep(i,1,n) cin>>a[i],cnt.upd(a[i],1),sum.upd(a[i],a[i]);while(q--){int op,x,y;cin>>op>>x>>y;if(op==1){cnt.upd(a[x],-1),cnt.upd(y,1);//删除 a_x,增加 ysum.upd(a[x],-a[x]),sum.upd(y,y);//删除 a_x,增加 ya[x]=y;}else{if(x>y) cout<<n*x<<"\n";//特判else cout<<(cnt.que(x-1)*x+(n-cnt.que(y))*y)+sum.que(y)-sum.que(x-1)<<"\n";// <l 的数的贡献;>r 的数的贡献;l~r 的数的贡献。}}return 0;
}

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

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

相关文章

完整教程:linux离线环境局域网远程ssh连接vscode

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

2025 CSP-S 趋势记

“去年 CSP-S 就没过初赛,今年呢?” 2025 CSP-S 寄。 T1 60min才发现可以反悔贪心,跑完大样例觉得是对的然后有个等号少判了就 100 -> 65。 T2 连正解都没想出来,只会 \(O(2^k \times (m + nk) + (m + nk) \log…

鲜花:记梦4

“你考虑得怎么样了?” 对面的声音打断了我的思考。我抬头一看,居然是,她。 我竭力克制住我的情绪变化,把悸动深深藏在了心底。 她递给我一个信封:“如果考虑好了的话,就在里面的合同上签字吧。”我连忙伸手去接…

第26天(简单题中等题 二分查找、贪心算法)

打卡第二十六天 1道简单题+2道中等题题目:思路: 贪心+二分查找,维护一个"潜在的最优递增序列集合",让每个长度的递增子序列的末尾元素尽可能小,从而为后续元素提供更多的增长可能性。代码: class Solution…

invalid literal for int() with base 10: abc中的base 10是什么意思? 另外它是怎么知道abc的?

在 Python 错误信息 invalid literal for int() with base 10: abc 中,涉及两个关键问题:base 10 的含义,以及程序如何知道错误输入是 abc。下面分别详细解释: 一、base 10 是什么意思? base 在这里表示“进制”,…

byd秘钥 - MKT

byd秘钥 https://rcorex.github.io/nuttyb-config/

NSubstitute之Substitute.ForT

_currentUser = Substitute.For<ICurrentUser>(); 这是 NSubstitute(一个 .NET 单元测试 mock 框架)中的标准用法,用来“创建一个假的 ICurrentUser 实例”。 下面详细解释它的逻辑。✅ 到底发生了什么? Sub…

DAY1 JAVA PreLearning

day1 markdown leaning font 1.set the title: # title---first class subject,## title---second class subject and so on 2.set the text to bold: text 3.set the text to italic: text 4.perform like deleting …

动态规划实践:数字三角形问题分析

动态规划实践:数字三角形问题分析数字三角形的动态规划分析 按照动态规划的求解步骤,我们一步步拆解这个问题: 1.1 最优子结构与递推方程式 首先明确状态定义:设 dp[i][j]表示从数字三角形顶部(第0行第0列)走到第…

【服务器】服务器被攻击植入了挖矿病毒,CPU一直占用100%,@monthly /root/.cfg/./dealer病毒清除 - 实践

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

第4章 AI项目管理新范式:从交付功能到交付价值

第4章 AI项目管理新范式:从交付功能到交付价值前文系统剖析了传统项目管理范式在AI场景下的局限性。面对这些系统性挑战,简单的“修补”已无济于事,我们必须进行管理范式的“重构”。本章正式提出AI项目管理的新范式…

牛客101:链表 - 教程

牛客101:链表 - 教程2025-11-15 22:39 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-…

C++ QT_数据转换(数值、QString、QByteArray、结构体)

目录1. 基础类型互转数值 ↔ QStringbool ↔ QStringQString 与 QByteArray 互转结构体与 QByteArray 互转 1. 基础类型互转 数值 ↔ QString//int → QStringint intVal = 255; QString strInt1 = QString::number(i…

LNCPC 2025 游寄

LNCPC 2025 游记热身赛 没去,因为期中考试 TAT. jsh 和 sr 替我报了道,然后我在火车上胡做法。 C 是显然 greedy,D 是一个不知道什么东西。 然后铸币蒟蒻凭借惊人的注意力想到了在二进制上转换做数位 dp,但是时间不…

第3章 传统项目管理在AI中的局限

第3章 传统项目管理在AI中的局限第3章 传统项目管理在AI中的局限本章简介在深刻理解了AI项目的核心特征后,本章将系统性地审视传统项目管理框架在面对这些特征时所暴露出的不适应性。目的在于并非全盘否定经典方法——…

Python 异常处理全面详解(附丰富实例)

Python 异常处理全面详解(附丰富实例) 异常是程序运行时出现的意外错误(如除数为零、文件不存在等),若不处理会导致程序崩溃。Python 提供了完善的异常处理机制,允许开发者捕获并处理这些错误,保证程序的健壮性…

IServiceCollection和IServiceProvider

ServiceCollection 和 ServiceProvider 是 .NET 依赖注入系统中的两个核心概念,但它们的职责完全不同。理解这两个概念对看懂 ASP.NET Core / ABP 框架的 DI 机制非常重要。 下面用非常清晰、分层方式给你解释:✔️ …

multisim 13 Problem: Accessing the database解决办法

删除这个文件夹重新打开即可C:\Users\zengf\AppData\Roaming\National Instruments\Circuit Design Suite\13.0\config

完整教程:Redis 事务机制:Pipeline、ACID、Lua脚本

完整教程:Redis 事务机制:Pipeline、ACID、Lua脚本pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…