04 2021 档案

摘要:题链 Kruskal #include <bits/stdc++.h> using namespace std; #define MS 200009 #define ls rt<<1 #define rs rt<<1|1 #define LL long long #define MAXN 0x3f3 阅读全文
posted @ 2021-04-15 18:29 棉被sunlie 阅读(47) 评论(0) 推荐(0)
摘要:题链 floyd #include <bits/stdc++.h> using namespace std; #define MS 100009 #define ls rt<<1 #define rs rt<<1|1 #define LL long long #define MAXN 0x3f3f3 阅读全文
posted @ 2021-04-15 17:34 棉被sunlie 阅读(50) 评论(0) 推荐(0)
摘要:题链 #include <bits/stdc++.h> using namespace std; #define MS 100009 #define ls rt<<1 #define rs rt<<1|1 #define LL long long #define MAXN 2147483647 in 阅读全文
posted @ 2021-04-15 16:31 棉被sunlie 阅读(53) 评论(0) 推荐(0)
摘要:题链 #include <bits/stdc++.h> using namespace std; #define MS 10009 #define ls rt<<1 #define rs rt<<1|1 #define LL long long #define MAXN 2147483647 int 阅读全文
posted @ 2021-04-15 16:06 棉被sunlie 阅读(48) 评论(0) 推荐(0)
摘要:答案是对着这段区间 [L,R] 不断询问直到不存在 x+1 得来的; 例如一个区间有为 1,2,4,4; 首先询问 1,发现存在 1,ans = 1; 然后询问 ans+1 = 2,发现存在 2,则 [1,3] 都能凑出,ans = 3; 接着询问 ans+1 = 4,发现存在两个 4,则 [1,1 阅读全文
posted @ 2021-04-12 18:43 棉被sunlie 阅读(154) 评论(0) 推荐(1)
摘要:题链 分析 前50%的数据 val[i][j][k] 表示 [1,1][i,j] 大于等于 k 的值 的总和; size[i][j][k] 表示 [1,1][i,j] 大于等于 k 的值 的个数; 在 [1,1000] 之内二分查找; 后50%的数据 建立主席树(可持久化权值线段树),节点信息除了左 阅读全文
posted @ 2021-04-12 15:57 棉被sunlie 阅读(80) 评论(0) 推荐(0)
摘要:本题使用动态开点权值线段树... 数据返回是 [-1e7,1e7] ,所以将其 +(1e7+1) 让范围映射到 [1,2e7+1] ,这样就在 [1,2e7+1] 构建权值线段树,记 2e7+1 为 MAXN; 先考虑前面 4 种操作 插入和删除操作就是在线段树的叶子节点(递归的最底层)的位置 +- 阅读全文
posted @ 2021-04-11 18:42 棉被sunlie 阅读(272) 评论(0) 推荐(0)
摘要:普通线段树是预先处理出值域的范围。像二叉树一样建树,有时通过将所给序列离线离散化以减小普通线段树的值域。 当所给序列不允许离线而且值域比较大时,动态开点线段树可以 O(nlogm) 维护线段树,m 是值域,假象一开始有一颗 [1,m] 的线段树,当然是不去建它的。 对于普通线段树都有修改操作,则如将 阅读全文
posted @ 2021-04-11 16:05 棉被sunlie 阅读(145) 评论(0) 推荐(0)