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

P14003 [eJOI 2025] Reactions 解题报告

题目意思

随便找的题目,树状数组和离散化,很板子的东西不会细说

给定两个数组 \(D_i,T_i\),求 \(\max\limits_{i=1}^{n}{(\sum\limits_{j=i}^n[\sum\limits_{k=i}^jD_k \ge T_j])}\)

思路

首先如果你将上面那个式子分解或者稍稍理解一下就能想到将区间加和,区间问题转化为单点问题,即使用前缀和,这样就变成了对于每一个 \(i\) 求有多少个 \(j\) 满足 \(j\ge i,Sum_j-Sum_{i-1}\ge T_j\) 其中 \(Sum\) 是前缀和数组

稍稍移项,变成 \(Sum_j-T_j\ge Sum_{i-1}\),接下来就是很板子的东西了,直接上一个离散化把每个数的这两项离散化掉,然后发现要求 \(j\ge i\),所以从后往前扫,每一次使用树状数组单点加不等式前面的东西,然后树状数组访问后面的东西即可,时间复杂度 \(O(n\log_2n)\)

代码

#include<algorithm>
#include<iostream>
#include<cstring>
#include<climits>
#include<cmath>
#include<vector>
#define ll long longusing namespace std;
const ll M=1e6+9;
ll sum[M],n,la[M],cnt,a[M],b[M]; struct SGT{#define lowbit(x) (x&(-x))ll tr[M<<2];inline void change(ll x){for(;x<=cnt;x+=lowbit(x))tr[x]++;}inline ll query(ll x){ll ans=0;for(;x;x-=lowbit(x))ans+=tr[x];return ans; }
}seg;ll reactions(int N, std::vector<int> G, std::vector<long long> T);
ll reactions(int N, std::vector<int> G, std::vector<long long> T){vector<ll> D;for(int i=0;i<N;i++){if(i>0) D.push_back(D[i-1]+G[i]);else D.push_back(G[i]);}for(int i=0;i<N;i++){if(i==0){la[++cnt]=0;la[++cnt]=D[i]-T[i];continue;}la[++cnt]=D[i-1];la[++cnt]=D[i]-T[i];}sort(la+1,la+cnt+1);cnt=unique(la+1,la+cnt+1)-la-1;for(int i=1;i<N;i++){//a[i] for query,b[i] for changea[i]=lower_bound(la+1,la+cnt+1,D[i-1])-la;b[i]=lower_bound(la+1,la+cnt+1,D[i]-T[i])-la;}ll ans=0,pos0=lower_bound(la+1,la+cnt+1,0)-la;a[0]=pos0;b[0]=lower_bound(la+1,la+cnt+1,D[0]-T[0])-la;for(int i=N-1;i>=0;i--){seg.change(cnt-b[i]+1);if(i!=0)ans=max(ans,seg.query(cnt-a[i]+1));else ans=max(ans,seg.query(cnt-pos0+1));}return ans;
}
http://www.wxhsa.cn/company.asp?id=6333

相关文章:

  • 计算机科学入门
  • Windows Server 2019开启远程桌面无法远程处理
  • 英语_阅读_This makes me crazy_待读
  • 一位华裔数学家40年目睹之怪现状:美国学生的数学为什么那么差?
  • 这些年轻科学家不再满足于“追赶美国”
  • 英语_阅读_
  • 聊聊理想的影像团队
  • 黑芝麻智能上半年亏损超7亿 CEO单记章去年薪酬高达1.66亿
  • 英语_阅读_BMI_待读
  • Flutter数据可视化:fl_chart图表库的高级应用
  • 教材大纲-Python
  • 2025 年 PHP 常见面试题整理以及对应答案和代码示例
  • 0130_中介者模式(Mediator)
  • 零门槛入局 AI 创业!瓦特 AI 创作者平台,让普通人轻松抓住风口
  • 基环树
  • 2025介绍1个简单好用免费的版权符号复制生成网站
  • 【GitHub每日速递 250917】69k 星标!这个 MCP 服务器大集合,竟能解锁 AI 无限可能?
  • WPF 通过 WriteableBitmap 实现 TAGC 低光增强效果算法
  • 最新学王点读笔破解教程2025
  • css-3
  • 基于 RQ-VAE 的商品语义 ID 构建及应用案例
  • U3D 动作游戏开发中数学知识的综合实践案例
  • 删除根目录前的准备
  • Player Mini MP3 模块播放音乐
  • Linux服务器部署FRP及配置Token
  • 最大子列和问题
  • RSA 共模攻击
  • 计组博文
  • week1task
  • 《原子习惯》-读书笔记3