随笔分类 - 数据结构——线段树
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃)
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4515 把lca带进式子,得到新的式子 然后就是 维护树上一次函数取min 一个调了一下午的错误: 当一条线段完全在另一条线段之下时,用下面的完全覆盖上面的 判断条件为 两线段在范围内没有交点 然后若
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4817 lct+线段树+dfs序 操作1:access 操作2:u到根的-v到根的-lca到根的*2+1 操作3:查询线段树区间最大值 1A,嘎嘎嘎
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3779 有一棵树,初始每个节点有不同的颜色 操作1:根节点到x的路径上的点 染上一种没有出现过的颜色 操作2:操作1后把x换成根 操作3:定义点x的点权为x到根节点路径上不同颜色的数量,查询x的子树点权
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4869 欧拉降幂+线段树,每个数最多降log次,模数就会降为1 #include<cmath> #include<cstdio> #include<iostream> using namespace s
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1095 点分树+堆 请去看 http://www.cnblogs.com/TheRoadToTheGold/p/8463436.html 线段树维护括号序列 对树进行dfs,入栈时加一个左括号,出栈时加
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3672 法一:线段树维护可持久化单调队列维护凸包 斜率优化DP 设dp[i] 表示i号点到根节点的最少花费 dis[i] 表示 点i到根节点的距离 dp[i]= min { (dis[i]-dis[j]
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3730 点分树内对每个节点动态维护2颗线段树 线段树以距离为下标,城市的价值为权值 对于节点x的两棵线段树: 一棵维护 点分树中,x的子树 的贡献 一棵维护 点分树中,x对x的父节点的贡献 查询和修改时
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2325 设线段树节点区间为[l,r] 每个节点维护sum[0/1][0/1] 从l的A/B区域到r的A/B区域 经过冰块的最大数量 mx[0][0] 从l的A区域出发向r经过冰块的最大数量 mx[0][
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4034 dfs序,树链剖分 4034: [HAOI2015]树上操作 Description 有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种: 操作 1 :把某个节
阅读全文
摘要:http://codeforces.com/contest/193/problem/D 题意: 给一个1~n的排列,在这个排列中选出两段区间,求使选出的元素排序后构成公差为1的等差数列的方案数。 换个角度思考问题,题意转化为存在多少对[L,R] ,(R>L),满足将值为[L,R]的区间染色后,所得区
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3938 以时间为x轴,以距离为y轴,那么每个机器人的行走路径就是一条折线 把折线分段加入线段树里,然后就是线段树维护单点一次函数最大值和最小值 调了半下午+一晚上一直在TTT 今早突然发觉, 之前用来贡
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1568 写多了就觉着水了。。。 1568: [JSOI2008]Blue Mary开公司 Description Input 第一行 :一个整数N ,表示方案和询问的总数。 接下来N行,每行开头一个单词
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2333 读入所有数据,先模拟一遍所有的合并操作 我们不关心联通块长什么样,只关心联通块内有谁 所以可以把一个联通块用一个链表存储 合并x和y时,y的链表整体接到x的链表后面 这样就成了线性结构 按照链表
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3589 树链剖分 用线段数维护扫描线的方式来写,标记只打不下传
阅读全文
摘要:期望得分:100+100+40=240 实际得分:100+100+20=220 T1 sum[r]^sum[l-1]<k 对前缀异或和建trie树 假设当前是第i位,sum[r]的地i位是l 如果k的第i位为1,累加l,当前指针转到sum[r]的l^1 否则,当前指针直接转到sum[r]的l #in
阅读全文
摘要:https://www.luogu.org/problemnew/show/P3960 p<=500 50分 模拟 每个人的出队只会影响当前行和最后一列 p<=500,有用的行只有500行 所以只维护这p行和最后一列的信息 然后模拟 时间复杂度:O(p*(n+m)) 空间复杂度:O(p*m+n) #
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1858 2018 自己写的第1题,一遍过 ^_^ 元旦快乐
阅读全文
摘要:一、定义 二维线段树,即用线段树维护一个矩阵 有两种实现方式: 1、原一维线段树的基础上,每一个节点都是一个线段树,代表第二维 下图是一个4*4矩阵 2、四分法转化为一维线段树 两种方法的空间复杂度都是n*n*log^2 第一种方法单次操作的时间复杂度是log^2,第二种方法最差可以退化到n 一维线
阅读全文
摘要:http://poj.org/problem?id=2029 单点修改 矩阵查询 二维线段树 Get Many Persimmon Trees Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 4649 Accepted: 3025
阅读全文