树状数组
CaprYang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
区间交 HDU - 5700 权值线段树 | 树状数组 二分
题解 将区间按照左端点排序 最开始将前k-1个区间的右端点加入权值线段数 遍历剩下的区间每次把当前区间右端点加入权值线段数并查询倒数第k大的右端点 每次遍历的左端点 到 倒数第k大的右端点的区间则为当前最大区间 使用前缀和求区间和 AC代码 #include <stdio.h> #include <bits/stdc++.h> using namespace std; ty...原创 2018-10-18 16:07:56 · 505 阅读 · 0 评论 -
程序员的背包 ZZULIOJ - 2485 离散化 dp lis | 树状数组
题解 经典的最长上升子序列问题 因为数值过大使用二分进行优化 AC代码 #include <stdio.h> #include <bits/stdc++.h> using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; const int MAXN = 5e4 + 10; int a[MAX...原创 2018-12-23 18:09:02 · 501 阅读 · 0 评论 -
“卓见杯”第五届CCPC中国大学生程序设计竞赛河南省赛 题解
题解 使用树状数组查询某个范围内的数值的数量,因为数值比较大需要先进行离散化处理。 使用DFS遍历整棵树,当到达某个节点时首先查询区间[a[i]-m, a[i]+m]范围内的数字数量记为last,表示还没到当前子树时已有的数量。 将当前节点值加进梳妆数组,因为自身到自身也算。进行递归,回溯后再次查询区间[a[i]-m, a[i]+m]记为now,表示增加了自身子树之后的数量。 最后每个点的答案f[...原创 2019-04-13 18:41:12 · 993 阅读 · 2 评论
分享