[BZOJ 3731] Gty的超级妹子树 (树分块) 题面 给出一棵树(或森林),每个点都有一个值.现在有四种操作 1.查询x子树里>y的值有多少个 2.把点x的值改成y 3.添加一个新节点,它的父亲是x,值是y 4.断开节点x与父亲节点的边,一棵树变成两棵树 分析 新姿势-树分块get 分块预处理 如果没有树的形态变化,一棵主席树就可以了.但是有形态变化,我们考虑树分块.树分块的思路是把树分成许多大小相等的树,可以用dfs预处理出来.我们dfs的时候把当前块的所有值记录在一个vector里,…
3731: Gty的超级妹子树 Time Limit: 7 Sec  Memory Limit: 32 MBSubmit: 346  Solved: 96[Submit][Status][Discuss] Description 我曾在青山之中遇过你, 新竹做杖,鬓插紫茱萸. 跣足踏过无边丝雨, 又拾起燕川雪片片落如席…… Gty神(xian)犇(chong)从来不缺妹子…… 他又来到了一棵妹子树下,发现每个妹子有一个美丽度…… 由于Gty很 哲♂学 也很 机♂智,他只对美丽度大于某个值的妹子感…
传送门 题意:一棵树,询问子树中权值大于k的节点个数,修改点权值,插入新点,断开边:强制在线 该死该死该死!!!!!! MD我想早睡觉你知不知道 该死该死沙比提 断开边只会影响一个块,重构这个块就行了 如果断开的点$u$是这个块$p$的根,只修改原图和块图就好了 否则,把$u$子树在块中的部分从$p$里删除,放到一个新块里.并且,这些点连到的其他块的点,也要在块图上与$p$断开与新块相连 所以我们维护一个删除边的$mark$标记 WA:一开始原图加的是双向边,通过判断$fa$防止出错..后来$f…
Gty的超级妹子树 Time Limit: 7 Sec  Memory Limit: 32 MBSubmit: 500  Solved: 122[Submit][Status][Discuss] Description 我曾在青山之中遇过你, 新竹做杖,鬓插紫茱萸. 跣足踏过无边丝雨, 又拾起燕川雪片片落如席…… Gty神(xian)犇(chong)从来不缺妹子…… 他又来到了一棵妹子树下,发现每个妹子有一个美丽度…… 由于Gty很 哲♂学 也很 机♂智,他只对美丽度大于某个值的妹子感兴趣. 他…
3787: Gty的文艺妹子序列 Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 186  Solved: 58[Submit][Status][Discuss] Description Autumn终于会求区间逆序对了!Bakser神犇决定再考验一下他,他说道:   “在Gty的妹子序列里,某个妹子的美丽度可也是会变化的呢.你还能求出某个区间   中妹子们美丽度的逆序对数吗?当然,为了方便,这次我们规定妹子们的美丽度在   [1,n]中.仍然强制…
传送门 分块树,代码参考了Manchery的 具体细节还是看代码好了 这题卡常……注意常数写好点…… //minamoto #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<vector> using namespace std; #define getc() (p1==p2&&(p2=(p1=buf)+fread(bu…
传送门 题意:单点修改,询问区间内逆序对数,强制在线 看到加了!就说明花了不少时间.... 如果和上题一样预处理信息,用$f[i][j]$表示块i到j的逆序对数 强行修改的话,每个修改最多会修改$(\frac{N}{S})^2$个信息,可以通过$S=N^{\frac{2}{3}}$达到$O(N^{\frac{5}{3}})$ 但是我们可以更快 令$S=\sqrt{N}$ 如果我们用$f[i][j]$表示一个块i中元素与一个块j中元素组成的逆序对数,一次修改就只会修改$\sqrt{N}$个信息啦…
题意 给出n个数,要求支持单点修改和区间逆序对,强制在线. n,m<=50000 题解 和不带修改差不多,预处理出smaller[i][j]代表前i块小于j的数的数量,但不能用f[i][j]代表第i块到第j块逆序对的数量,这样不好维护. 我们用f[i][j]代表从第i块选出一个元素与从第j块选出一个元素组成逆序对的数量,维护时最多修改根号n个f数组,查询时用前缀和起到与不带修改时f数组的作用. 其他部分和不带修改时差不多. 然后问题就解决了. #include<iostream> #in…
BZOJ 洛谷 \(Description\) 给定一棵树,每次询问给定\(p,k\),求满足\(p,a\)都是\(b\)的祖先,且\(p,a\)距离不超过\(k\)的三元组\(p,a,b\)个数. \(n,q\leq3\times10^5\). \(Solution\) \(p,a,b\)都在一条链上. 那么如果\(a\)是\(p\)的祖先,答案就是\(\min(dep[p],\ k)*(sz[p]-1)\).可以\(O(1)\)计算. 如果\(a\)在\(p\)的子树中,答案就是\(\sum…
BZOJ.4034 [HAOI2015]树上操作 ( 点权树链剖分 线段树 ) 题意分析 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a . 操作 3 :询问某个节点 x 到根的路径中所有点的点权和. 首先上来两次dfs树链剖分问题不大,然后主要是这三个操作分别如何取实现. 先说第一种,点权修改,直接用线段树的点更新就好了.第二个子树修改,貌似树…