随笔分类 - ----线段树
摘要:题意:给你一颗树,要求断掉一条边,使得剩下两个联通快的直径之和最大一看就是树形DP嘛,c1表示最长边c2次长,f表示父亲部分的最长路上面做法不讲,我们讲一种比较新奇的方法假设我们枚举断哪一条边,在lgn时间内求出两个联通快的直径不就行了嘛怎么做呢,我们发现,可以用树的...
阅读全文
摘要:您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数)...
阅读全文
摘要:您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数)...
阅读全文
摘要:2017.10.21更新,下面是原本的咸鱼做法我们发现询问只有一个,我们考虑二分这个最后答案我们将序列中所有大于mid的值变成1,否则变成0,那么,排序就变成了将序列的01放在头或尾,可以用线段树区间修改做到#include#include#define mid (l...
阅读全文
摘要:2017.10.21更新,下面是原本的咸鱼做法我们发现询问只有一个,我们考虑二分这个最后答案我们将序列中所有大于mid的值变成1,否则变成0,那么,排序就变成了将序列的01放在头或尾,可以用线段树区间修改做到#include#include#define mid (l...
阅读全文
摘要:子树的问题都是dfs序的工作啦,加上个线段树就ok了#include#define mid (l+r>>1)struct Edge{ int v,nt; } G[200010];int h[100010],cnt=0,clk=0,l[100010],r[100010]...
阅读全文
摘要:子树的问题都是dfs序的工作啦,加上个线段树就ok了#include#define mid (l+r>>1)struct Edge{ int v,nt; } G[200010];int h[100010],cnt=0,clk=0,l[100010],r[100010]...
阅读全文
摘要:看了一眼就开始想分快树套树莫队了吧?233333333但是这道题有一个奇怪的条件!颜色不超过30种!是不是一个状压就完了?23333333333333333333#include#define ls x>1)int s[400040],t[400010],n,m,c;...
阅读全文
摘要:看了一眼就开始想分快树套树莫队了吧?233333333但是这道题有一个奇怪的条件!颜色不超过30种!是不是一个状压就完了?23333333333333333333#include#define ls x>1)int s[400040],t[400010],n,m,c;...
阅读全文
摘要:有问题,找副连,无聊的时候当然也可以找他啦。小W找到了他的叔叔——东厂厂长——宇宙超级无敌老WS yy。他们叔侄两个商量之后决定用弹弓打破社区里的一些窗户,但是弹弓每秒只能彻底打破一扇窗户。而且如果某户窗户的主人回来了的话,他们就不能进行破坏了(不然会死得很惨的)。因...
阅读全文
摘要:有问题,找副连,无聊的时候当然也可以找他啦。小W找到了他的叔叔——东厂厂长——宇宙超级无敌老WS yy。他们叔侄两个商量之后决定用弹弓打破社区里的一些窗户,但是弹弓每秒只能彻底打破一扇窗户。而且如果某户窗户的主人回来了的话,他们就不能进行破坏了(不然会死得很惨的)。因...
阅读全文
摘要:题意:给你一个bst插入的顺序问你完成这些操作需要多少次比较(即这颗bst所有节点深度之和)显然,我们在bst中插入一个节点x,它一定是它前继或者后续的儿子这样的话,我们记录每个点的深度,每次找前继和后续即可本来应该用链表的,我还是为了卡时用了ZKW线段树#pragm...
阅读全文
摘要:题意:给你一个bst插入的顺序问你完成这些操作需要多少次比较(即这颗bst所有节点深度之和)显然,我们在bst中插入一个节点x,它一定是它前继或者后续的儿子这样的话,我们记录每个点的深度,每次找前继和后续即可本来应该用链表的,我还是为了卡时用了ZKW线段树#pragm...
阅读全文
摘要:题意:给一棵树,每次删边或者询问连通性,强制在线其实这题做法很多嘛,简单说一下一眼看过去肯定是LCT啦,于是马上开始打打到一半发现似乎不用LCT?好像树剖也可以嘛结果发现树剖也不用,直接一个dfs序就可以了嘛用线段树维护每个点能到达的最远的祖先,删边的时候将整个区间覆...
阅读全文
摘要:题意:给一棵树,每次删边或者询问连通性,强制在线其实这题做法很多嘛,简单说一下一眼看过去肯定是LCT啦,于是马上开始打打到一半发现似乎不用LCT?好像树剖也可以嘛结果发现树剖也不用,直接一个dfs序就可以了嘛用线段树维护每个点能到达的最远的祖先,删边的时候将整个区间覆...
阅读全文
摘要:题意:给你一颗树,每次选择一条简单路径进行染色,问最后每条边的颜色此题非常之坑,各种卡,主要是卡栈空间首先看题就写了个树剖,让后各种TLE和RE,开了O3还是不行#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#...
阅读全文
摘要:题意:给你一颗树,每次选择一条简单路径进行染色,问最后每条边的颜色此题非常之坑,各种卡,主要是卡栈空间首先看题就写了个树剖,让后各种TLE和RE,开了O3还是不行#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#...
阅读全文
摘要:有n个无聊的人,对于一条长为m(n#includeusing namespace std;int n,m,x,y,v[2000010];int s[2000010>=1) s[x]++;}int fpr(int x){ for(x+=M;x;x>>=1) if((x...
阅读全文