
主席树
文章平均质量分 84
做不完的ACM
加油,努力
展开
-
HDU5919主席树
题意CCPC的I题。给出一个序列,问区间[l, r]中所有不同元素出现的第一个位置(取最左)组成的序列中的中位数。 第i个询问区间依赖于第i-1个询问的答案,所以是强制在线的。题解比较经典的主席树维护区间种类问题的变形。相同元素只取最左侧位置,所以对序列a,从a[n]到a[1]建立主席树,插入新元素到主席树中时取消相同元素的贡献,只保留最左侧元素。 查询[l, r]的时候,查询第l个版本的主席树就...原创 2018-05-25 01:00:57 · 161 阅读 · 0 评论 -
HDU6183(动态开点线段树)
题目链接题目大意:有四种操作。 0:清除所有点 1 x y c:给点(x,y)添加一种颜色c 2 x y1 y2:在(0,y1)与(x,y2)所围成的矩形里有多少种颜色 3:程序结束笔记注意这里一个点可以有很多种颜色,是不会被覆盖的。 颜色最多51种。我们就建51棵线段树。 每个线段树按y轴建树,每个结点的值是在范围内的最小的x值 ps:看了cls(claris)的cpp感觉学到了姿势啊。orz....原创 2018-05-27 02:04:48 · 1253 阅读 · 0 评论 -
HDU6191持久化字典树+DFS序
#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 7;int val[maxn];vector<int>g[maxn];int in[maxn], out[maxn];int rt[maxn], tot, time_tag;struct node{ int lc,...原创 2018-05-27 02:06:30 · 212 阅读 · 0 评论 -
湖北省赛持久化字典树
题解:主席树维护,利用前缀和思想做差贪心。题目链接:https://www.nowcoder.com/acm/contest/104#question#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 7;struct node{ int nxt[2], v;}t[maxn * ...原创 2018-05-27 02:08:14 · 149 阅读 · 0 评论 -
主席树HDU2665,区间第k小。
#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 7;struct node{ int lc, rc, v; node () {lc=rc=v=0;}}t[maxn*20];int tot;int a[maxn];int b[maxn];int rt[maxn];i...原创 2018-05-23 17:15:03 · 158 阅读 · 0 评论 -
HDU4417
题目大意为给定一个长度为n的区间,同时给出m个询问,每次询问在区间[l,r]中有多少个数小于或等于k。同样考虑用主席树来维护,每次只需要找到序列b中第一个等于k的数,那么要求的数必定在b[1]~b[upper_bound(k)]这个范围内,接下来就像线段树统计区间个数那样,若完全包含则直接加上e[rr].sum-e[ll].sum,否则就分两边递归统计。而建树什么的就直接套模板即可。还要注意一点,...原创 2018-05-24 01:09:43 · 622 阅读 · 0 评论 -
Codeforces960F
【题目】F. Pathwalks【题意】给定n个点m条边的有向图,可能不连通有重边有自环。每条边有编号 i 和边权 wi ,求最长的路径(可以经过重复节点)满足编号和边权都严格递增。n,m,wi<=10^5。【算法】主席树+DP【题解】这个和LIS十分类似,只要在考虑LIS的树状数组做法的前提下多考虑节点搭配问题,即f[i]=f[j]+1还需要e[j].v=e[i].u。所以对每个节点建可持...原创 2018-05-24 02:17:57 · 208 阅读 · 0 评论 -
Codeforces961E
题意: 一个剧一共有n季,每季有ai集。问有多少对x,y(x≠y),使得第x季有第y集且第y季有第x集。题解:问题可以转换成对于当前第i个数,区间1~min(a[i], i-1) 有多少个数大于i的,转换成主席树求解。#include <bits/stdc++.h>using namespace std;const int maxn = 2e5 + 7;struct node...原创 2018-05-24 13:37:19 · 275 阅读 · 0 评论 -
Codeforces 1006E Military Problem
题目链接:http://codeforces.com/contest/1006/problem/E题面:In this problem you will have to help Berland army with organizing their command delivery system.There are nn officers in Berland army. The fi...原创 2018-07-17 10:07:29 · 793 阅读 · 0 评论