随笔分类 -  数据结构-线段树

摘要:原题目 "链接" 原代码来自 "attack" cpp include include define LL long long // define int long long using namespace std; const int MAXN = 3 1e5 + 10; const LL INF 阅读全文
posted @ 2019-06-01 19:58 hjmmm 阅读(247) 评论(0) 推荐(0)
摘要:虽然是场virtual 但这是第一次在cf的比赛里进前100 好开心 【我知道我很菜qvq 比赛链接 "cf" A 如果有")("就把它们排在一起放在"(("和“))”中间 然后保证"((","))"一样多就好啦 C 有m个区间 从所有区间中删掉两个 求最大覆盖面积 $n, m include in 阅读全文
posted @ 2019-05-08 18:44 hjmmm 阅读(126) 评论(0) 推荐(0)
摘要:比赛链接 "cf" A 最后一位判定 C 所有方案 全是红边的方案 并查集维护 cpp include include include include include include include include include using namespace std; typedef long 阅读全文
posted @ 2019-05-07 22:32 hjmmm 阅读(141) 评论(0) 推荐(0)
摘要:很套路的维护最大和子段 cpp include include include include include include include include define mp(x, y) make_pair(x, y) using namespace std; const int N = 1e6 阅读全文
posted @ 2019-04-11 13:21 hjmmm 阅读(171) 评论(0) 推荐(0)
摘要:题面 "bzoj" "luogu" 好久以前听lxl讲过 咕掉了。。 竟然又遇到了 安利 "blog" cpp include include include include include include include include define mp(x, y) make_pair(x, y 阅读全文
posted @ 2019-04-09 15:07 hjmmm 阅读(97) 评论(0) 推荐(0)
摘要:题面 "bzoj" ans = 两子树ans + min(左子在前逆序对数, 右子在前逆序对数) 线段树合并 cpp include include include include include define Sqr(x) ((x) (x)) using namespace std; const 阅读全文
posted @ 2019-04-04 14:23 hjmmm 阅读(98) 评论(0) 推荐(0)
摘要:题面 "loj" 分析 这道题非常妙啊 对于可保留区间[l, r] 枚举右端点r 考虑l的取值范围有两重约数 记颜色i出现的最右侧位置是$max_i$ 最左侧位置是$min_i$ r前最后一次出现的位置是pre[i] 1.若max[i] r 则 l pre[i] 2.若max[i] include 阅读全文
posted @ 2019-03-29 22:15 hjmmm 阅读(272) 评论(0) 推荐(0)
摘要:本文为线段树做法 (听说可以tarjan缩点+拓扑? 感觉差不多。。而且这样看起来方便很多 找到左端点的过程可以看作 点 区间内lowerbound最小的点 lowerbound 区间内lowerbound最小的点 lowerbound ...... 所以直接维护每个点lowerbound,线段树维 阅读全文
posted @ 2019-03-04 21:02 hjmmm 阅读(224) 评论(0) 推荐(2)