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

【题解】AT_abc432_e [ABC432E] Clamp

一眼 ds 题。

分析一下第二个式子:
\(l\leq r\),此时对于每个 \(a_i\),其贡献 \(sum\) 一定在 \([l,r]\) 中。具体地:

\[sum= \begin{cases} l,\ a_i < l \\ a_i,\ l\leq a_i\leq r \\ r,\ a_i>r \\ \end{cases}\]

对于第一、三种情况,考虑使用 BIT 维护数字的出现次数。
第二种情况也很好想:再用一个 BIT 维护数字之和。

修改操作就先撤销一个数的贡献,再加上新数的贡献。

诶到这里你可能会发现不对。
是的,因为题目并没有说明 \(l\leq r\)!!

于是思考 \(l>r\) 的情况:
就当你想与其大战一番的时候,你惊讶地发现它的答案就是 \(n\times l\)
(因为无论怎样,\(\min(r,a_i)\) 都一定 \(\leq r\),而 \(r<l\),所以最大值恒为 \(l\)

然后这道题就做完了。

注意:BIT 的 update(x,del)\(x\) 可能为 \(0\)

Code

// no note
#include<bits/stdc++.h>typedef int IT;
typedef long long LL;
typedef __int128 int128;
typedef double DB;
typedef long double LDB;#define pb push_back
#define fst first
#define sec second
#define psh push
#define mkp make_pair
#define PII pair<IT,IT>
#define PLI pair<LL,IT>
#define lowbit(x) ((x)&(-x))#define int long longusing namespace std;const int N=5e5+10,V=5e5,DEL=2;int n,q;
int a[N];struct BIT{int t[V+12];void update(int x,int del){for(;x<=V+DEL;x+=lowbit(x)) t[x]+=del;return;}int query(int x){int res=0;for(;x;x-=lowbit(x)) res+=t[x];return res;}
}T1,T2;
// 个数,和signed main(){scanf("%lld %lld",&n,&q);for(int i=1;i<=n;i++) scanf("%lld",&a[i]),T1.update(a[i]+DEL,1),T2.update(a[i]+DEL,a[i]);for(int i=1;i<=q;i++){int opt,x,y;scanf("%lld %lld %lld",&opt,&x,&y);if(opt&1){T1.update(a[x]+DEL,-1);T2.update(a[x]+DEL,-a[x]);a[x]=y;T1.update(a[x]+DEL,1);T2.update(a[x]+DEL,a[x]);}else{if(x>y){LL res=1ll*n*x;printf("%lld\n",res);continue;}LL res=1ll*(T1.query(x-1+DEL)-T1.query(-1+DEL))*x+1ll*(T1.query(V+DEL)-T1.query(y+DEL))*y+(T2.query(y+DEL)-T2.query(x-1+DEL));printf("%lld\n",res);}}return 0;
}

link

http://www.jsqmd.com/news/42170/

相关文章:

  • WireWorld美国线世界中国企业代理资质结构化列表
  • 关于python的库的层级引用问题
  • jmeter查看天气/快递操作
  • 详细介绍:00x01.Vulnhub系列DC-1靶机渗透测试:从Drupal漏洞到Root权限的完整攻防
  • 详细介绍:MySQL——用户权限和管理
  • 完整教程:配置驱动开发:初探零代码构建嵌入式软件配置工具
  • 2025 年海运物流专线公司推荐排行榜(广东地区重点推荐) 广州 / 深圳 / 佛山 / 东莞 ⇄ 澳洲 / 加拿大 / 新西兰物流运输公司推荐
  • 【CSP-J 2025】T4 多边形 polygon 题解
  • 回退背包
  • Django F对象完全指南:数据库层面的字段操作
  • 如何计算一台服务器最大TCP连接数
  • module jdk.compiler does not “以” com.sun.tools.javac.processing” to unnamed module
  • nginx 响应html内容
  • Why cant Google appear in New York?
  • Django Q对象查询完全指南
  • [AGC001E] BBQ Hard 分析
  • logicFlow ,画布节点自定义
  • 哈希从入门到入土『给学弟学妹们讲课用的』
  • 20232303 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • 学校真好!
  • NOIP2025模拟9
  • .net 8+, 类库无法引用 WebApplication 的解决方案
  • 网络分析模型七
  • 2025-11-16
  • iOS移动端H5键盘弹出时页面布局异常和滚动解决方案 - 详解
  • P14092 [ICPC 2023 Seoul R] M. S. I. S.
  • temperature、top_p、top_k
  • PyCharm gitee: Git Pull Failed
  • python方便的桌面应用.customtkinter