首页 > 其他分享 >Little Pony and Lord Tirek 题解

Little Pony and Lord Tirek 题解

时间:2024-05-14 17:21:50浏览次数:15  
标签:pt Tirek 题解 查询 leq lst Lord mathcal

Little Pony and Lord Tirek 题解

\(\texttt{Problem Link}\)

题目大意

  • 给定长度为 \(n\) 的序列,第 \(i\) 个数有三个值:

    \(s_i, m_i, r_i\),每秒对于每个数执行 \(s_i \leftarrow \min\{s_i + r_i, m_i\}\)。

  • 有 \(m\) 个查询,每次查询三个值:

    \(t, l, r\) 查询时刻 \(t\), \([l, r]\) 的和,查询结束后执行 \(\forall i \in[l, r],s_i = 0\)。

数据范围与限制:

\( 1 \leq n, m \leq 10^5, 0 \le s_i, r_i, m_i \leq 10^5, 0 \le t \le 10^9 \)

思路与分析

借鉴了一下 lxl 的题解

每次查询与询问在同一个区间,可以以此为突破口。

可以发现每次查询后,区间 \([l, r]\) 都拥有了相同的初始值和最后修改时间。

那么可以用颜色段均摊的思想维护。

(ps:不会颜色段均摊,学习。)

那么考虑对于每个颜色段如何查询。

记录 \(pt_i\) 表示第 \(i\) 个数,从 \(0\) 开始要多久时间变成刚好比 \(m_i\) 小的值。

可以分为两个部分查询:

  • 当前值 \(now_i \le m_i\) 的数,即 \(pt_i > lst - t\)。
  • 当前值 \(now_i > m_i\) 的数,即 \(pt_i \leq lst - t\)。

那么答案就为 \(\sum m_i[pt_i > lst - t] + \sum s_i + (t - lst) \times r_i[pt_i \leq lst - t]\)。

\(lst\) 为当前段上次修改的时间。

那答案就可以通过维护一个主席树查询区间和 \(r_i, m_i\) 的和在 \(\mathcal{O}(\log n)\) 的时间求解。

复杂度分析

每次操作增加 \(\mathcal{O}(1)\) 个颜色段,初始有 \(\mathcal{O}(n)\) 个颜色段。

总共 \(\mathcal{O}(n + m)\) 个颜色段,加上珂朵莉树的复杂度。

共 \(\mathcal{O}((n + m) \log n)\)。

\(\texttt{Code}\)

标签:pt,Tirek,题解,查询,leq,lst,Lord,mathcal
From: https://www.cnblogs.com/zdrj/p/18191764

相关文章

  • [H&NCTF] maybe_xor题解
    maybe_xor感觉这道逆向题与其说是考逆向水平,倒不如说是考编写脚本的能力首先题目给了个远程地址,nc连接会回显ELF:接一串base64编码的东东,解码后发现是ELF文件。用IDA打开发现是从数据段读取24个字节到栈上并进行异或,每个字节异或的值都不同,但异或后的结果不会写回栈程序的目......
  • [题解] Flipping Game
    题目描述有n盏灯,每个灯有开和关两种状态。每按一次灯会变成相反的状态。给定灯初始的开关状态和结束的开关状态,若操作k轮,每轮要按m个不同的灯,问有多少种方法使灯由初始状态变到结束状态。题解需注意每轮要按不同的灯,若无这个条件,暴力计算组合数即可。要操作多轮,且每轮按灯的......
  • 题解:SP10232 AMR11E - Distinct Primes
    前话这咋人名都和HP一模一样了,SPOJ出题人里是不是全是哈迷啊。思路非常直观的一个思路:从前往后枚举每一个数,看是否满足条件,输出满足条件的第一个。CODE#include<bits/stdc++.h>usingnamespacestd;boolis(intn){//判断质数if(n<2)return0;for(inti=2;i<......
  • 题解:CF1337A Ichihime and Triangle
    看到大佬们基本都是直接输出\(b\)\(c\)\(c\)了事儿,一身反骨有其它构造方法的我表示不服,遂作此篇。众所周知,两边之和大于第三边,所以,如果\(b+c>d\),那么\(b\)、\(c\)、\(d\)就是正确的。那如果不满足呢?在题目条件下\(b+c>b+c-1\),那么这一组就是合理的。分别验......
  • NOIP真题题解
    2001T4Car的旅行路线ybtluogu建图+最短路1.建图时细节较多已知三点求第四点的坐标勾股定理判断斜边2.最短路时多起点多终点2013D1T3货车运输ybtluogu最大生成树+倍增LCA答案的边一定在最大生成树上将原图建出最大生成树在树上使用倍增LCA提取路径2014D2T2寻......
  • 5.13 模拟赛题解(没写完)
    T1P4304[TJOI2013]攻击装置快进到HZOI2023超越HZOI2020(人均场切了紫)考虑将棋盘黑白染色成这个样子容易发现相同颜色的点直接一定没有冲突,满足二分图的性质,需要求出最小点覆盖,所以直接按冲突建好双向边,从\(1\)到\(n^2\)节点跑最大匹配即可。设求出的最大匹配为\(......
  • HydroOJ 从入门到入土(19)导入题解和标程、题目数据统计(>=4.12.0)
    题解和std可以导入了,导出还会远吗?目录一、导入题解和标程1.目录结构2.测试结果3.第二次测试题目结构如下:测试结果:4.总结:关于题解:关于标程(std):去除.DS_Store的解决方法二、题目数据统计1.范围2.筛选选项3.无关紧要的小bug一、导入题解和标程新版本更新了这个功能,方......
  • THUSC总结PART1-比赛总结/题解
    第一次参加\(THU\)的营,战绩惨不忍睹.D1T1给出\(d\),\(n_1\cdotsn_d\),\(l\),求\[\sum_{i_1=0}^{n_1-1}\sum_{2_1=0}^{n_2-1}\cdots\sum_{i_d=0}^{n_d-1}\max(0,(i_1\oplusi_2\oplus\cdotsi_d)-l)\]其中\(d<=10\),\(n_i<=1e18\),\......
  • 【问题解决】java.lang.NoSuchMethodError错误
    问题现象近期本人负责的一个SpringBoot模块出现了java.lang.NoSuchMethodError报错,问题情况如下:A类提供了setJumpType(Stringtype),B类调用A类的setJumpType(Stringtype)报错java.lang.NoSuchMethodError:com.xxx.A.setJumpType(Ljava/lang/String;)V在之前的发版的程序中,B......
  • abc353f 题解
    大分讨,由于没注意到细节挂大分。下面称大小为\(n\timesn\)的为大格子,\(1\times1\)的为小格子。把\(n\timesn\)个小格子组成的正方形称为一个部分。分析我们先来讨论一般情况。思考一对于\(n\ge3\)的一般情况,如果要求任意两个大格子到对方的距离最小,怎么做?根据贪......