
离线处理
文章平均质量分 53
Frozen_Guardian
已退役菜鸡Acmer
展开
-
洛谷 - P2163 [SHOI2007]园丁的烦恼(不带修二维数点-树状数组/主席树)
题目链接:点击查看题目大意:二维平面坐标系中给出 nnn 个坐标点,然后是 mmm 次询问,每次询问需要回答一个闭合矩阵中有多少个点题目分析:想挂树套树来着,但是复杂度有点大。本题不带修且可以离线,考虑将一个询问拆成四个二维前缀和的表示形式,然后就可以排个序直接用树状数组统计啦有个小细节就是当 xxx 坐标相同时,需要先加点然后再询问代码:// Problem: P2163 [SHOI2007]园丁的烦恼// Contest: Luogu// URL: https://www.luogu.co原创 2021-08-23 14:17:35 · 445 阅读 · 2 评论 -
CodeForces - 817F MEX Queries(线段树lazy序)
题目链接:点击查看题目大意:初始时有一个空的集合,需要执行 n 次操作:1 l r:将区间 [ l , r ] 内未出现的数加入到集合中 2 l r:将区间 [ l , r ] 内出现的数字全部删除 3 l r:将区间 [ l , r ] 内未出现的数加入到集合中,同时将区间 [ l , r ] 内出现过的数字全部删除每次操作后取集合的 MEX题目分析:HDU - 3397的弱化版简化版题意就是,初始时有一个全 0 的序列,操作 1 是将区间内的数全部修改为 1,操作 2 是将区间内.原创 2020-11-26 21:49:26 · 269 阅读 · 2 评论 -
洛谷 - P3379 【模板】最近公共祖先(LCA)(RMQ求LCA/Tarjan求LCA)
题目链接:点击查看题目大意:给出一棵 n 个点组成的有根树,再给出 m 次询问,每次询问需要回答点 x 和点 y 的 lca题目分析:今天新学了两种蛮有意思的求 LCA 的方法,总结一下四种方法各有利弊吧,实现复杂度参考我自己,如果有代码大佬能闭着眼随便写的话,忽略即可 Orz树上倍增求LCA:时间复杂度: 预处理:O( nlogn ) 查询:O( logn ) 空间复杂度:O( nlogn ) 实现复杂度:最简单树链剖分求LCA:时间复杂度: 预处理:O( n )原创 2020-10-27 18:20:09 · 317 阅读 · 0 评论 -
HDU - 4417 Super Mario(主席树/线段树+离线)
题目链接:点击查看题目大意:给出由 n 个数的数列,再给出 m 次查询,每次查询需要输出 [ l , r ] 内小于等于 h 的数有多少个题目分析:大晚上睡不着觉随便做做题,发现这个题目原来可以用主席树来做,又发现这个题目去年暑假竟然没写博客,于是补上一发线段树离线的做法就是对数列和询问的高度排序,遍历每个询问,双指针将小于等于当前询问高度的位置都扔到线段树中,记录当前询问的区间内有多少个数即可主席树在线做法,有两种,先说一下网上最常见的,就是遍历每个位置作为下标,对于下标维护可持久化线段树原创 2020-08-08 03:12:31 · 276 阅读 · 0 评论 -
中石油训练赛 - 奎奎画画(思维+并查集+离线处理)
题目描述“为你写诗,为你静止,为你做不可能的事”,爱情是一种怪事,它让奎奎开始学习画画。奎奎认为一张画的艺术价值等于画上的白色联通块个数(当一个格子和它上下左右四个方向上的某个相邻格子颜色相同,则认为它们属于同一个联通块),奎奎还认为他作画的艺术价值和妹子对他的好感度紧密相关,因此奎奎非常在意每一时刻他的画的艺术价值。 为了简化题目,奎奎在一张n行m列的白色矩形格子画布上作画,他一共画了q笔,...原创 2020-03-09 11:33:45 · 333 阅读 · 0 评论 -
CodeForces - 722C Destroying Array(倒着并查集+离线处理)
题目链接:点击查看题目大意:给出一个数列a,现在给出操作b,每次操作都会删除掉数列a中指定位置的数,问每次删除后,最大连续字段和是多少题目分析:一开始看到最大连续字段和,以为是要用dp,又看了一下题发现a数组都是非负数,这样一来最大连续字段和就取决于在经过数组b的操作后是否连续了,判断连续一开始我想用set集合维护断点的,感觉太麻烦,又想用线段树试试能不能维护区间,还是比较麻烦,想不出比较...原创 2020-01-23 00:45:15 · 242 阅读 · 0 评论 -
牛客 - 走迷宫(模拟+离线)
题目链接:点击查看题目大意:给出一个走迷宫的策略:while(1){ if (前面没有障碍 && 前面还没有走过) 前进一步(); else if(右边没有障碍 && 右边还没有走过) { 右转(); 前进一步(); } else 原地...原创 2019-11-17 19:12:14 · 535 阅读 · 0 评论 -
(转)莫队算法+树上莫队算法模板
莫队算法,说白了就是优雅的暴力,在我的理解看来就是排序+尺取的组合插眼:莫队算法插眼:树上莫队树上莫队就是利用dfs序的升级版,欧拉序将树转换成线性区间区间来操作即可莫队模板:del函数和add函数需要根据题意随机应变const int N=1e5+100;int size,n,m,ans[N],a[N];struct query{ int l,r,id; bo...转载 2019-11-08 12:42:25 · 449 阅读 · 0 评论 -
计蒜客 - Distance on the tree(树链剖分+离线处理+线段树)
题目链接:点击查看题目大意:给出一颗含有n个节点的树,每条边都有权值,现在给出m个询问,每次询问的格式为u,v,w,我们需要求出在路径u-v上,边权小于等于w的边的个数题目分析:因为一开始不会主席树,所以就选择了线段树+离线处理,因为边权比较难处理,我就选择将边权映射到点权上,这样就将问题转换成了求u-v这条路径上权值小于等于w的点的个数了,因为涉及到了u-v这条路径,我们需要先将这条链拿...原创 2019-11-07 23:37:04 · 306 阅读 · 0 评论 -
HDU - 3804 Query on a tree(树链剖分+线段树+离线处理)
题目链接:点击查看题目大意:给出一棵树,每条边上都有一个权值,给出m个查询:a,b:问从点1到点a的唯一路径上,在边权小于等于b的边中选出边权最大的值输出,若没有符合条件的边则输出-1;题目分析:如果还不清楚树链剖分,这里有一个讲的很棒的博客:点击查看然后看到这里就默认已经掌握了树链剖分和线段树的基础知识了。下面分析一下这个题目的思路,题目很好理解,但如果直接暴力模拟的话必定超时,...原创 2019-08-20 16:21:06 · 280 阅读 · 0 评论 -
HDU - 3333 Turing Tree(线段树+离线处理)
题目链接:点击查看题目大意:给定一个长度为n的数列,依次求m个区间中不相同数字之和题目分析:n给的是3e4,看到区间问题先要想到线段树或差分区间或动态规划,暴力是肯定不行滴,那么这个题已经知道是需要用线段树处理了,可是我们只擅长用线段树求区间和,并没有学过求不同数字之和啊,那么该怎么处理重复的数字呢?这里就要将线段树的两个优势结合起来使用了:单点修改和区间查询好了,现在来说一下...原创 2019-08-04 20:34:11 · 298 阅读 · 0 评论