[bzoj 3720] Gty的妹子树 (树上分块)】的更多相关文章

树上分块(块状树) Description 我曾在弦歌之中听过你, 檀板声碎,半出折子戏. 舞榭歌台被风吹去, 岁月深处尚有余音一缕-- Gty神(xian)犇(chong)从来不缺妹子-- 他来到了一棵妹子树下,发现每个妹子有一个美丽度-- 由于Gty很哲♂学,他只对美丽度大于某个值的妹子感兴趣. 他想知道某个子树中美丽度大于k的妹子个数. 某个妹子的美丽度可能发生变化-- 树上可能会出现一只新的妹子-- 维护一棵初始有n个节点的有根树(根节点为1),树上节点编号为1-n,每个点有一个权值wi…
传送门 题意: 一棵树,询问子树中权值大于$k$的节点个数,修改点权值,插入新点:强制在线 一开始以为询问多少种不同的权值,那道CF的强制在线带修改版,直接吓哭 然后发现看错了这不一道树上分块水题... 用王室联邦分块的话需要维护每一个块$dfs$序最小值和最大值,并且插入操作会破坏原来的性质 不如直接按$size$分块,根节点$size<block$就加入根,否则新建块 $size$分块不能保证块的数量,可以被菊花图卡掉,然而本题没有所以就可以安心的写了 每个块维护排序后的值 查询操作,不完整…
3720: Gty的妹子树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 412  Solved: 153[Submit][Status] Description 我曾在弦歌之中听过你, 檀板声碎,半出折子戏. 舞榭歌台被风吹去, 岁月深处尚有余音一缕…… Gty神(xian)犇(chong)从来不缺妹子…… 他来到了一棵妹子树下,发现每个妹子有一个美丽度…… 由于Gty很哲♂学,他只对美丽度大于某个值的妹子感兴趣. 他想知道某个子树中美丽度大于…
Gty的妹子树 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2149  Solved: 781[Submit][Status][Discuss] Description 我曾在弦歌之中听过你, 檀板声碎,半出折子戏. 舞榭歌台被风吹去, 岁月深处尚有余音一缕…… Gty神(xian)犇(chong)从来不缺妹子…… 他来到了一棵妹子树下,发现每个妹子有一个美丽度…… 由于Gty很哲♂学,他只对美丽度大于某个值的妹子感兴趣. 他想知道某个子树中美…
题目链接 洛谷上惨遭爆零是为什么.. 另外这个树分块算法是假的. /* 插入删除只涉及一个数,故每次可以枚举一遍,而不是重构完后sort */ #include<cmath> #include<cstdio> #include<cctype> #include<algorithm> #define gc() getchar() const int N=6e4+5; const int MaxSize=200,MaxNum=10000; int n,tot,l…
任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=3744 3744: Gty的妹子序列 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 2571  Solved: 746[Submit][Status][Discuss] Description 我早已习惯你不在身边,   人间四月天 寂寞断了弦.   回望身后蓝天,   跟再见说再见……     某天,蒟蒻Autumn发现了从 Gty的妹子…
传送门 学到了询问分块的科技-- 对于修改操作,每发生了\(S\)次修改就重构整棵树,小于\(S\)次的修改操作丢到一个队列里面. 对于每一次查询操作,先在主席树上查询当前子树内部大于\(k\)的节点的数量,然后依次将队列中的修改放到树上,在答案统计完成之后再将这些修改撤销.使用倍增检验某一个点是否在子树内,如果在子树内则考虑这个节点的权值修改或加入对于答案的影响. 修改的复杂度为\(O(\frac{N}{S}NlogN)\),查询的复杂度为\(O(NSlogN)\),当\(S = \sqrt{…
询问的化我们可以建主席树.然后修改?,树套树...,最后插入?炸了. 所以我们对操作进行分块. 我们先对整棵树建一个主席树.修改,插入我们先记录下来.然后询问的时候先对主席树查询,然后暴力遍历我们记录下来的修改插入操作.每\(\sqrt{m}\)次操作后我们重新构建一个主席树.这样我们保证了重建主席树和询问的总复杂度为\(O(nlogn\sqrt{m})\)然后就把这道题解决了. 有一个难办的事就是如何记录修改和插入的操作.可以使每次询问的时候我们可以知道修改和插入是否在\(u\)的子树中以便我…
[BZOJ3720]Gty的妹子树 我曾在弦歌之中听过你,檀板声碎,半出折子戏.舞榭歌台被风吹去,岁月深处尚有余音一缕……Gty神(xian)犇(chong)从来不缺妹子……他来到了一棵妹子树下,发现每个妹子有一个美丽度……由于Gty很哲♂学,他只对美丽度大于某个值的妹子感兴趣.他想知道某个子树中美丽度大于k的妹子个数.某个妹子的美丽度可能发生变化……树上可能会出现一只新的妹子……维护一棵初始有n个节点的有根树(根节点为1),树上节点编号为1-n,每个点有一个权值wi.支持以下操作:0 u x …
3744: Gty的妹子序列 Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 101  Solved: 34[Submit][Status] Description 我早已习惯你不在身边,   人间四月天 寂寞断了弦.   回望身后蓝天,   跟再见说再见……     某天,蒟蒻Autumn发现了从 Gty的妹子树(bzoj3720) 上掉落下来了许多妹子,他发现   她们排成了一个序列,每个妹子有一个美丽度.   Bakser神犇与他打算研究一下…
3744: Gty的妹子序列 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1931  Solved: 570[Submit][Status][Discuss] Description 我早已习惯你不在身边,   人间四月天 寂寞断了弦.   回望身后蓝天,   跟再见说再见……     某天,蒟蒻Autumn发现了从 Gty的妹子树(bzoj3720) 上掉落下来了许多妹子,他发现   她们排成了一个序列,每个妹子有一个美丽度.   Bakse…
Description 我早已习惯你不在身边, 人间四月天 寂寞断了弦. 回望身后蓝天, 跟再见说再见-- 某天,蒟蒻Autumn发现了从 Gty的妹子树上掉落下来了许多妹子,他发现 她们排成了一个序列,每个妹子有一个美丽度. Bakser神犇与他打算研究一下这个妹子序列,于是Bakser神犇问道:"你知道区间\([l,r]\)中妹子们美丽度的逆序对数吗?" 蒟蒻Autumn只会离线乱搞啊--但是Bakser神犇说道:"强制在线." 请你帮助一下Autumn吧. 给…
块状树裸题 块状树: 首先对树进行分块,分出的每一块都是一个连通块 通常的分块的方式如下: 1.父亲所在块不满,分到父亲所在块中 2.父亲所在块满,自己单独开一个块 (貌似有更为优越的分块方式? 注意这是不严格的分块,即每个块的大小不一定都是设定的阈值blo 对于这道题,首先修改和添加直接块内暴力就可以了 对于询问,首先我们对每个块排序,块不完全在询问子树内的单点询问,块完全在询问子树内的块内二分 分块真是骗分利器,但是块状树最大的缺点是容易被菊花树卡住 (貌似修改和添加可以去掉一个log,但是…
jzyzoj的p2016 先码着,强制在线的树分块或者树套树?关键是我树分块还在入门阶段树套树完全不会啊摔   http://blog.csdn.net/jiangyuze831/article/details/41445003 果然我除了抄代码什么也不会......树分块之类的东西完全不会计算复杂度..... 似乎upper_bound非常浪费时间..所以更改的时候直接循环查找不然会超时...... static这种东西不要胡乱用......如果在后面直接赋值会赋值不上........ 看代码…
传送门 题意:一棵树,询问子树中权值大于k的节点个数,修改点权值,插入新点,断开边:强制在线 该死该死该死!!!!!! MD我想早睡觉你知不知道 该死该死沙比提 断开边只会影响一个块,重构这个块就行了 如果断开的点$u$是这个块$p$的根,只修改原图和块图就好了 否则,把$u$子树在块中的部分从$p$里删除,放到一个新块里.并且,这些点连到的其他块的点,也要在块图上与$p$断开与新块相连 所以我们维护一个删除边的$mark$标记 WA:一开始原图加的是双向边,通过判断$fa$防止出错..后来$f…
题面传送门 题目大意:给你一个序列,多次询问,每次取出一段连续的子序列$[l,r]$,询问这段子序列的逆序对个数,强制在线 很熟悉的分块套路啊,和很多可持久化01Trie的题目类似,用分块预处理出贡献,而这道题是用可持久化线段树罢了 首先对序列分块,设块大小为$S$ 再建出主席树,我们就能在$O(logn)$时间内查询某个点$i$与区间$[l,r]$内的点产生的逆序对数量 然后处理出点和整块之间的答案,设$f(i,j)$表示第$i$个点与第$j$块的开始/末尾这段区间内的点产生的逆序对数量. 再…
具体分析见 搬来大佬博客 时间复杂度 O(nnlogn)O(n\sqrt nlogn)O(nn​logn) CODE #include <cmath> #include <cctype> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; char cb[1<<15],*cs=cb,*c…
题目 我曾在弦歌之中听过你, 檀板声碎,半出折子戏. 舞榭歌台被风吹去, 岁月深处尚有余音一缕-- Gty神(xian)犇(chong)从来不缺妹子-- 他来到了一棵妹子树下,发现每个妹子有一个美丽度-- 由于Gty很哲♂学,他只对美丽度大于某个值的妹子感兴趣. 他想知道某个子树中美丽度大于k的妹子个数. 某个妹子的美丽度可能发生变化-- 树上可能会出现一只新的妹子-- 维护一棵初始有n个节点的有根树(根节点为1),树上节点编号为1-n,每个点有一个权值wi. 支持以下操作: 0 u x 询问以…
题目链接 题意 给定\(n\)个数,\(q\)个询问,每次询问\([l,r]\)区间内的逆序对数. 强制在线. 思路 参考:http://www.cnblogs.com/candy99/p/6579556.html 离线的话就如上一题bzoj 3289 Mato的文件管理,可以直接用 莫队 搞,在线的话怎么办呢? 分块大法好. 1 预处理出两个信息: \(f[i][j]\):从 第\(i\)块开始位置 到 位置\(j\) 这段区间的逆序对数 \(s[i][j]\):前\(i\)块中\(\leq…
传送门 好珂怕…… 树分块是什么东西啊……感觉好暴力…… 直接贴一下好了->这里 //minamoto #include<iostream> #include<cstdio> #include<vector> #include<cstring> #include<algorithm> using namespace std; #define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1…
点此看题面 大致题意: 给你一棵有根树,让你支持三种操作:询问某子树中大于\(x\)的值的个数,把某一节点值改成\(x\),添加一个父节点为\(u\).权值为\(x\)的节点. 关于此题做法 此题做法真的是五花八门啊,主要做法貌似有四种: 平衡树套平衡树.似乎没有人写. 树分块.官方正解,实际上能被菊花图卡掉,但是没有构造数据卡. 时间分块.即按照操作的次数进行分块,这也是我的做法. 代码分块.即分类讨论. 下面,我们主要讲一讲如何用时间分块处理这题. 主席树的暴力做法 我们先来了解一下如何用主…
传送门 题意:询问区间内逆序对数 感觉这种题都成套路题了 两个预处理$f[i][j]$块i到j的逆序对数,$s[i][j]$前i块$\le j$的有多少个 f我直接处理成到元素j,方便一点 用个树状数组就行了 预处理和查询都带$log$所以还是开根号n比较科学吧 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath>…
题目链接 静态区间逆序对数查询,这道题用线段树貌似不好做,可以把区间分成$\sqrt n$块,预处理出两个数组:$sum[i][j]$和$inv[i][j]$,$sum[i][j]$表示前i个块中小于等于j的数的个数,$inv[i][j]$表示第i块与第j块之间的逆序对数,递推搞一下就行.查询的时候中间的部分直接查询,两边多出来的部分暴力计算贡献即可.总复杂度$O(n\sqrt nlogn)$ #include<bits/stdc++.h> using namespace std; typed…
题意 询问区间内逆序对数  强制在线 1<=n<=50000 1<=m<=50000 题解 两个预处理f[i][j]为块i到j的逆序对数,s[i][j]前i块≤j的有多少个边角余料用个树状数组就行了 #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; ;…
我只会O(nnlogn)O(n\sqrt nlogn)O(nn​logn)的 . . . . 这是分块+树状数组+主席树的做法O(nnlogn)O(n\sqrt nlogn)O(nn​logn) 搬来大佬博客 . . . . 这是不用主席树只用树状数组加一点预处理的O(nnlogn)O(n\sqrt nlogn)O(nn​logn) 搬来大佬博客 . . . . 加各种预处理达到的O(nn)O(n\sqrt n)O(nn​)搬来大佬博客 . . . . 我只写了两种O(nnlogn)O(n\sq…
题面传送门 介于自己以前既没有写过 Staircase-Nim 的题解,也没写过时间轴分块的题解,所以现在就来写一篇吧(fog 首先考虑最极端的情况,如果图是一条链,并且链的一个端点是 \(1\),那么问题可以转化为序列上的问题,即可视作有一个 \(n\) 级的阶梯,第 \(i\) 级台阶上有 \(a_i\) 个石子,每次可以选择一堆并将其中 \(x(x\le L)\) 个石子向下移动一级,不能移动最底下一级的石子,不能操作者输. 这是一个经典的 staircase 博弈的模型,对于这样的模型我…
3731: Gty的超级妹子树 Time Limit: 7 Sec  Memory Limit: 32 MBSubmit: 346  Solved: 96[Submit][Status][Discuss] Description 我曾在青山之中遇过你, 新竹做杖,鬓插紫茱萸. 跣足踏过无边丝雨, 又拾起燕川雪片片落如席…… Gty神(xian)犇(chong)从来不缺妹子…… 他又来到了一棵妹子树下,发现每个妹子有一个美丽度…… 由于Gty很 哲♂学 也很 机♂智,他只对美丽度大于某个值的妹子感…
[BZOJ 3731] Gty的超级妹子树 (树分块) 题面 给出一棵树(或森林),每个点都有一个值.现在有四种操作 1.查询x子树里>y的值有多少个 2.把点x的值改成y 3.添加一个新节点,它的父亲是x,值是y 4.断开节点x与父亲节点的边,一棵树变成两棵树 分析 新姿势-树分块get 分块预处理 如果没有树的形态变化,一棵主席树就可以了.但是有形态变化,我们考虑树分块.树分块的思路是把树分成许多大小相等的树,可以用dfs预处理出来.我们dfs的时候把当前块的所有值记录在一个vector里,…
Gty的超级妹子树 Time Limit: 7 Sec  Memory Limit: 32 MBSubmit: 500  Solved: 122[Submit][Status][Discuss] Description 我曾在青山之中遇过你, 新竹做杖,鬓插紫茱萸. 跣足踏过无边丝雨, 又拾起燕川雪片片落如席…… Gty神(xian)犇(chong)从来不缺妹子…… 他又来到了一棵妹子树下,发现每个妹子有一个美丽度…… 由于Gty很 哲♂学 也很 机♂智,他只对美丽度大于某个值的妹子感兴趣. 他…
3809: Gty的二逼妹子序列 Time Limit: 35 Sec  Memory Limit: 28 MBSubmit: 868  Solved: 234[Submit][Status][Discuss] Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题.   对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数.   为了方便,我们规定妹子们的美丽度全都在[1,n]中.   给定一个长度为n(1<=n<=10…