1 2 3 4

随笔分类 -  数据结构

摘要:http://poj.org/problem?id=3694 q次询问,问你添加一条边后,图里还剩几个桥。 由于我热爱神仙数据结构,于是我用树链剖分过了这道题 做法: 1.并查集随便建树 2.不参与树的边加入q次询问,但不输出 3.树剖用0覆盖1,比如查询x y的路径,就把x y的路径点都覆盖成0, 阅读全文
posted @ 2020-12-11 11:20 Lesning 阅读(71) 评论(0) 推荐(0) 编辑
摘要:这个题很绕,记数字i前面有cns[i]个数字比他大,逆序对个数就是sigmi cns[i] 反转k次就是让cns[i] - k (i>=1 && i <= n) 而且cns[i]不能有负数 利用两个线段树维护一下,就是有点绕。。。。 #include<iostream> #include<cstri 阅读全文
posted @ 2020-11-20 13:23 Lesning 阅读(96) 评论(0) 推荐(0) 编辑
摘要:问的就是 每次给你区间 l--r,每次覆盖一种不同的颜色,查询l--r有多少种不同的颜色 这个问题本质是在问区间l--r有多少不同的区间,利用前缀和计算一下,具体看代码 #include<iostream> #include<queue> #include<cstring> using namesp 阅读全文
posted @ 2020-11-11 20:22 Lesning 阅读(86) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P2894 线段树区间连续最大的1的个数,加上区间修改,lazy覆盖。虽然不难,写出来还是很interesting的。。 具体看代码吧 #include<iostream> #include<cstring> #include<que 阅读全文
posted @ 2020-11-10 21:31 Lesning 阅读(98) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P3391 这平衡树太厉害了。 思想就是分裂成1--x-1 x y y n三段,然后给x y这段树打上lazy标记, 在合并和分裂时候都要先下传标记才行 具体看代码就好,留个模板记录一下 #include<iostream> #inc 阅读全文
posted @ 2020-11-07 16:32 Lesning 阅读(87) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P3369 随机大法好啊啊啊 插入数字的时候,把平衡树按x分裂,插入x后再合并,具体可以看代码 #include<iostream> #include<algorithm> #include<cstdio> #include<ctim 阅读全文
posted @ 2020-11-07 10:55 Lesning 阅读(203) 评论(0) 推荐(0) 编辑
摘要:这个题可以尺取也可以权值线段树,我选择了权值线段树动态开点 我是sb 把数组按照a排序 1.如果没有人选a,那么分数线就按照b的最大值算 2.如果选了ai,那比ai小的aj都要选(贪心) 3.数字很大记得动态开点 没事了 非常可惜,其实我已经想到一半以上了,可惜看错了题。。。。秦皇岛两个铜题都很简单 阅读全文
posted @ 2020-11-04 22:14 Lesning 阅读(155) 评论(0) 推荐(0) 编辑
摘要:https://codeforces.com/problemset/problem/1437/E 这是有限制的最长上升子序列 数字之间必须满足list[i] - list[j] >= i - j 处理的时候就是让list[i] - i,这样就得到了最长不下降子序列,非正数就赋成INF忽略不计,就可以 阅读全文
posted @ 2020-10-30 13:41 Lesning 阅读(87) 评论(0) 推荐(0) 编辑
摘要:https://codeforces.com/problemset/problem/1436/E 这个题是个线段树 问你子串的mex 的mex 如果子串 的mex没有4,则没有办法分割出 存在1 存在2 存在3 不存在4 的字串出来,所以可以枚举,当前数字是list[i],记录之前list[i]出现 阅读全文
posted @ 2020-10-29 09:53 Lesning 阅读(142) 评论(0) 推荐(0) 编辑
摘要:https://ac.nowcoder.com/acm/contest/5671/J 牛客多校j题,利用线段树nlogn写出模拟的操作快速幂 可以类似给转圈用 #include<iostream> #include<set> using namespace std; typedef long lon 阅读全文
posted @ 2020-09-07 19:43 Lesning 阅读(129) 评论(0) 推荐(0) 编辑
摘要:https://ac.nowcoder.com/acm/contest/4090/F 8说了,就是个树链剖分 当xy之间的距离是奇数,就考虑重新建个1010101010--这样取值的树, 当xy之间距离是偶数,直接就完整的取异或就行了,没啥难得,树链剖分板子题8 #include<iostream> 阅读全文
posted @ 2020-03-26 19:46 Lesning 阅读(138) 评论(0) 推荐(0) 编辑
摘要:我感觉就是线段树+LCA的思想了 核心还是线段树 需要注意 在标记中,一个节点的所有子孙一定都是标号小于该节点的。 https://www.luogu.com.cn/problem/P2590 洛谷例题 解答 功能变多了就会很长很长 #include<cstring> #include<cstdio 阅读全文
posted @ 2020-02-29 19:16 Lesning 阅读(124) 评论(0) 推荐(0) 编辑
摘要:#include #include #include #include #include #define maxn 5000100 using namespace std; typedef long long ll; ll tree[maxn]; ll arr[maxn]; int vis[maxn]; int root = 1; int push_down(int node, int... 阅读全文
posted @ 2019-10-29 14:07 Lesning 阅读(149) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示