首页 > 其他分享 >暑假集训学习笔记(4):lxl DS Day 4

暑假集训学习笔记(4):lxl DS Day 4

时间:2024-07-05 11:20:08浏览次数:22  
标签:线段 值域 复杂度 DS 区间 考虑 lxl Day nlognlogV

倍增值域分块

CF702F T-Shirts

考虑将 \(q_i\) 从大到小排序, 将 \(a_i\) 从小到大排序, 并维护一个 \(b_i\) 数组表示答案, 我们遍历 \(q_j\) 数组, 每次是将 \(a_i\) 数组中 \(a_i \geq c_j\) 的全部减 \(c_i\), 然后 \(b_i\) 加 1 。 考虑用平衡树维护 \(a_i\), split 一下, 右区间树打一个 tag, 但考虑打完 tag 合并不起来, $ [c_i, 2c_i] $ 的减去 \(c_i\) 后左右区间树值域会有重叠, 考虑把这个区间的数暴力取出来, 减完后一个一个加回平衡树, 考虑这些数被操作后起码减半, 所以可以有均摊的复杂度 \(O(logV)\)。 总时间复杂度 \(O(nlognlogV)\)。

P7447 [Ynoi2007] rgxsxrs

考虑这里的数不会减半, 并且要访问区间, 我们不能暴力, 所以来个数据结构多维护一维表示区间, 考虑按值域倍增分块为 \([0, 1), [1, 2), [2, 4), [4, 8)...\) 。 每个值域开一棵线段树, 然后维护最大值最小值。 考虑将 $\geq x $ 的减去 \(x\), 某个值域中的数减去 \(x\) 后, 不处于该值域, 则暴力加入其他值域, 考虑最多下降 \(logV\) 次, 每次从线段树中取出加入 \(logn\), 总复杂度 \(O(nlognlogV)\)。 最大值最小值用来分讨和应对询问。

P9069 [Ynoi Easy Round 2022] 堕天作战

考虑转化为 $ < a$ 的减 \(a\), 和 \(> a\) 的减 \(a\), 大于 \(a\) 和上题一样, 然后 \(< a\) 的考虑如果变成负数就再也不会被减, 并且如果 \(< a\) 再减去 \(a\), 就一定会变成负数, 所以直接暴力, 均摊是 \(O(1)\) 的, 在对负数值域开一棵线段树即可。时间复杂度 \(O(nlognlogV + nlogn)\)。

P4587 [FJOI2016]神秘数

典中典

2019ICPC徐州 H - Yuuki and a problem

就是上一道题加强版。 倍增值域分块, 每个值域块拿线段树限制区间 \((l, r)\) , 可以搞到两个 \(log\)。 这样考虑上一题不用修改就可以用 RMQ,\(O(1)\) 查询做到一个 \(log\)。

CF1515I Phoenix and Diamonds

标签:线段,值域,复杂度,DS,区间,考虑,lxl,Day,nlognlogV
From: https://www.cnblogs.com/qerrj/p/18285439

相关文章

  • 【投稿优惠|权威出版】2024年工业设计与智能城市国际会议(ICIDSC 2024)
    2024年工业设计与智能城市国际会议2024InternationalConferenceonIndustrialDesignandSmartCities【1】大会信息会议简称:ICIDSC2024大会时间:点击查看大会地点:中国·三亚截稿时间:点击查看审稿通知:投稿后2-3日内通知会议官网:http://www.icidsc.com投稿邮箱:ici......
  • Day2 |977.有序数组的平方& 209.长度最小的子数组&59.螺旋矩阵II
    977.有序数组的平方这题太简单了,中间的排序我用的选择排序贴代码了publicint[]sortedSquares(int[]nums){for(inti=0;i<nums.length;i++){nums[i]=nums[i]*nums[i];}for(inti=0;i<nums.length;i++){......
  • 代码随想录刷题day 2 | 977.有序数组的平方、 209.长度最小的子数组、 59.螺旋矩阵II
    977.有序数组的平方classSolution{publicint[]sortedSquares(int[]nums){int[]ans=newint[nums.length];intleft=0,right=nums.length-1;for(inti=nums.length-1;i>=0;i--){if(nums[right]*nums[righ......
  • lxl 又来讲课的记录
    太困难。P7124前置知识:Eden的新背包问题。这个题做法比较离谱。题意是求子树补不删除莫队。要求操作次数\(O(n\logn)\)。考虑类似于线段树分治的结构,如果递归左儿子,就加入右节点信息;如果递归右儿子,就加入左儿子信息。这样我们能在\(O(n\logn)\)次操作种算出每个叶子在序......
  • day62--若依框架(基础应用篇)
    若依搭建若依版本官方若依官方针对不同开发需求提供了多个版本的框架,每个版本都有其独特的特点和适用场景:前后端混合版本:RuoYi结合了SpringBoot和Bootstrap的前端开发框架,适合快速构建传统的Web应用程序,其中前端和后端代码在同一项目中协同工作。前后端分离版本:RuoYi-Vu......
  • SpingMvc-Day02
    SpringMVC:表述层作用:1.接受前端参数[SpringMVC简化] 2.调用业务逻辑 3.响应前端数据[SpringMVC简化]SpringMVC组件: 1.DispatcherServlet:处理全部请求 2.handlerMapping:缓存handler方法和地址 3.handlerAdapter:适配器、参数和相应简化 4.ViewResovler视图解释器:查找视图页面......
  • 【web APIs】快速上手Day03(Dom事件进阶)
    目录WebAPIs-第3天全选文本框案例事件流事件捕获事件冒泡阻止冒泡解绑事件on事件方式解绑addEventListener方式解绑注意事项-鼠标经过事件的区别两种注册事件的区别事件委托综合案例-tab栏切换改造其他事件页面加载事件元素滚动事件页面滚动事件-获取位置页面滚动......
  • JAVA每日作业day7.1-7.3小总结
    ok了家人们前几天学了一些知识,接下来一起看看吧一.APIJava的API(API:Application(应用)Programming(程序) Interface(接口))JavaAPI就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何......
  • 暑假集训学习笔记(3):lxl DS Day 3
    区间最值操作CF1572F首先广播站\(i\),能覆盖到的肯定是相对于\(i\)的前缀,我们可以维护一个\(r_i\),表示每个\(i\)可以覆盖到的右端点,然后我们考虑segmentbeats,考虑\(max\)变为\(v\)时,我们维护最大值有多少个,然后对应的\(b\)数组的\([v+1,max]\)位置就区......
  • 解决Landsat 5 TM L2影像在ENVI中打不开的情况
    打开Landsat5TML2影像的MTL文件在ENVI中报错如下:解决方法:打开MTL文件更改两个地方:1.将第一行改为:GROUP=L1_METADATA_FILE;2.L2级的影像已经过校正处理,正确的应该是如下图所示*****_SR_B*.TIF,但是在MTL里面往下拉还有一处地方的各波段名称没有更改过来,将下图红色框内......