[HNOI2015]接水果 时间限制:60s      空间限制:512MB 题目描述 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果. 由于她已经DT FC 了The big black,  她觉得这个游戏太简单了,于是发明了一个更 加难的版本.首先有一个地图,是一棵由 n 个顶点.n-1 条边组成的树(例如图 1 给出的树包含 8 个顶点.7 条边).这颗树上有 P 个盘子,每个盘子实际上是一条 路径(例如图 1 中顶点 6 到顶点 8 的路径),并且每个盘子还有…
Description 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果. 由于她已经DT FC 了The big black, 她觉得这个游戏太简单了,于是发明了一个更 加难的版本.首先有一个地图,是一棵由 n 个顶点.n-1 条边组成的树(例如图 1 给出的树包含 8 个顶点.7 条边).这颗树上有 P 个盘子,每个盘子实际上是一条 路径(例如图 1 中顶点 6 到顶点 8 的路径),并且每个盘子还有一个权值.第 i 个 盘子就是顶点a_i到顶点b_i的路径(由于是…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4009 题解 考虑怎样的情况就会有一个链覆盖另一个链. 设被覆盖的链为 \(a - b\),覆盖的链为 \(x - y\).假设有 \(dfn[a] < dfn[b], dfn[x] < dfn[y]\) 那么如果 \(a\) 是 \(b\) 的祖先,那么令 \(g\) 为 \(a\) 的子树中包含 \(b\) 的点,那么 \(x, y\) 中有一个点在 \(g\) 的子树外面,一个在 \(…
浅谈离线分治算法:https://www.cnblogs.com/AKMer/p/10415556.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?id=4009 树套树写法:https://www.cnblogs.com/AKMer/p/10181501.html 把二维线段树部分改成整体二分就行了. 时间复杂度:\(O(nlog^2n)\) 空间复杂度:\(O(n)\) 代码如下: #include <cstdio> #includ…
LOJ BZOJ 洛谷 又是一个三OJ rank1!=w= \(Description\) (还是感觉,为啥非要出那种题目背景啊=-=直接说不好么) 给定一棵树和一个路径集合(每条路径有一个权值).\(Q\)次询问,每次询问给定一条路径,求路径集合中完全被这条路径包含的路径中,权值第\(k\)大的是多少. \(n,m,Q\leq40000\). \(Solution\) 首先考虑一条路径\((a,b)\)完全包含路径\((u,v)\),需要满足什么条件. 记\(L[x]\)为\(x\ DFS\)…
整体二分+扫描线 树状数组 具体做法看这里a CODE #include <cctype> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; template<class T>inline void read(T &res) { char ch; int flg = 1; for(;!isdigit(ch=getchar());)i…
[HNOI2015]接水果 给出一个树上路径集合\(S\) 多次询问\(x,y\)中的\(k\)小值 如果你问我数列上那么我会 树上的话 树上差分了吧直接?- 令 \(st_x<st_y\) 1.假设 \(LCA(x,y) == x\) (学过树的人都知道不可能等于y) 然后树剖乱跳到一个路径上不在 \(x->y\) 上的 \(z\) 就可以了 \([1,st_z-1] or [st_z+1,n]\) 2.1假设不成立- 那么一个点在 \([st_x,ed_x]\) , 另一个在 \([st_…
传送门 整体二分好题. 考虑水果被盘子接住的条件. 不妨设水果表示的路径为(x1,y1)(x_1,y_1)(x1​,y1​),盘子表示的为(x2,y2)(x_2,y_2)(x2​,y2​) 不妨设dfn[x2]>dfn[y2],dfn[x1]>dfn[y1]dfn[x_2]>dfn[y_2],dfn[x_1]>dfn[y_1]dfn[x2​]>dfn[y2​],dfn[x1​]>dfn[y1​] 那么有两种情况. 第一种: y2y_2y2​是x2x_2x2​的祖先. 这…
题面 传送门 思路 本题其实有在线做法......但是太难写了,退而求其次写了离线 基本思路就是,考虑一个盘子以及它能接到的所有水果 可以发现,这个水果的端点一定在这个盘子两端的"子树"内(加引号是因为可能是一条链顶端外面的"子树") 那么,可以把模型抽象成:盘子就是矩形,两个端点就是两个维度上的限制,而水果就是点 一个水果可以被接住,当且仅当这个水果的点在某个盘子的矩形内部 考虑盘子的不同情况: 如果盘子是有一个折点的折链,那么两边的限制,就是两个端点的子树dfs…
题目描述 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果.由于她已经DT FC 了The big black, 她觉得这个游戏太简单了,于是发明了一个更加难的版本. 首先有一个地图,是一棵由 n 个顶点.n-1 条边组成的树(例如图 1给出的树包含 8 个顶点.7 条边). 这颗树上有 P 个盘子,每个盘子实际上是一条路径(例如图 1 中顶点 6 到顶点 8 的路径),并且每个盘子还有一个权值.第 i 个盘子就是顶点a_i到顶点b_i的路径(由于是树,所以从a_i到b…
4009: [HNOI2015]接水果 Description 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果. 由于她已经DT FC 了The big black,  她觉得这个游戏太简单了,于是发明了一个更 加难的版本.首先有一个地图,是一棵由 n 个顶点.n-1 条边组成的树(例如图 1 给出的树包含 8 个顶点.7 条边).这颗树上有 P 个盘子,每个盘子实际上是一条 路径(例如图 1 中顶点 6 到顶点 8 的路径),并且每个盘子还有一个权值.第 i 个 盘…
考虑整体二分,问题就变成了每个(水果)路径有多少个满足条件(权值)的(盘子)子路径 考虑一个盘子(a,b)表示两端点(不妨设dfn[a]<dfn[b]),那么他能接到的水果(u,v)一定满足(不妨设dfn[u]<dfn[v]): 1.如果a是b的祖先,则u在(a的在(b,a)链上的孩子)这个子树外,v在b子树内 2.否则,u在a的子树内,v在b的子树内 那么把一个水果(a,b)看成是一个二维点(dfn[a],dfn[b]),对于每个盘子,就是做一个二维区间+1 差分以后变成一个二维数点问题,可…
Description 先给出一些盘子, 用路径x-y表示, 有权值 再有Q个询问, 表示水果, 用路径x-y表示 如果盘子是水果的子路径, 可以接住 对于每个水果, 输出可以接住它的盘子的第k小权 Solution 对于x-lca-y的盘子,水果一定一个在x子树,一个在y子树 对于x-lca的盘子,水果一定一个在x子树,一个在lca的非x子树,即dfn序中的两段区间 将一对区间(盘子).一对点(水果)按dfn序顺序转化成一个矩形(盘子)和一个坐标(水果) 很明显就是整体二分了 #include…
[BZOJ4009][HNOI2015]接水果 Description 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果.由于她已经DT FC 了The big black,  她觉得这个游戏太简单了,于是发明了一个更加难的版本.首先有一个地图,是一棵由 n 个顶点.n-1 条边组成的树(例如图 1给出的树包含 8 个顶点.7 条边).这颗树上有 P 个盘子,每个盘子实际上是一条路径(例如图 1 中顶点 6 到顶点 8 的路径),并且每个盘子还有一个权值.第 i 个盘子…
题目描述 给出一棵n个点的树,给定m条路径,每条路径有一个权值.q次询问求一个路径包含的所有给定路径中权值第k小的. 输入 第一行三个数 n和P 和Q,表示树的大小和盘子的个数和水果的个数. 接下来n-1 行,每行两个数 a.b,表示树上的a和b 之间有一条边.树中顶点 按1到 n标号. 接下来 P 行,每行三个数 a.b.c,表示路径为 a 到 b.权值为 c 的盘子,其 中0≤c≤10^9,a不等于b.  接下来Q行,每行三个数 u.v.k,表示路径为 u到 v的水果,其中 u不等于v,你需…
[BZOJ4009]接水果(整体二分,扫描线) 题面 为什么这都是权限题???,洛谷真良心 题解 看到这道题,感觉就是主席树/整体二分之类的东西 (因为要求第\(k\)大) 但是,读完题目之后,我们发现路径之间的包含关系很不好搞 那么,我们来画画图 这是第一种情况,\(lca\)不是\(u,v\) \(u,v\)分别是一个盘子的两端 如果被一个水果完全覆盖, 那么,这个水果的两端分别在\(u,v\)的子树中 设\(dfn[u]\)是\(u\)的\(dfs\)序 \(low[u]\)是子树中最大的…
正解:整体二分+树状数组 解题报告: 传送门! 题目还是大概解释下?虽然其实是看得懂的来着,,, 大概就是说给一棵树.给定一些询问,每个询问都是说在两个点之间的路径上的子路径的第k大是什么 然后看到这种动态区间第k大就要想到整体二分嘛 然后想怎么实现单个询问的二分 显然是二分一个值mid,然后大于mid的路径都可以加入,然后看水果上有几个盘子和k比大小就好昂 所以难点就是在,怎么表示出盘子是水果的子路径,怎么求水果上有几个盘子(其实是一个问题,,,QwQ) 首先可以想到按照一般的套路应该是利用树…
题目: 洛谷 3242 分析: 明确题意:在一棵树上给定若干权值为 \(w\) 的路径 \((u,v)\) (盘子),每次给定 \((a,b)\) (水果),询问所有满足 \((u,v)\) 被 \((a,b)\) 完全覆盖的路径中第 \(k\) 小的路径的权值. 先考虑如何快速判断 \((u,v)\) 是不是 \((a,b)\) 的子路径.第一反应是充要条件是 \(a\) 和 \(b\) 分别在 \(u\) 和 \(v\) 的子树中(设 \(\mathrm{dfn}_p\) 是 \(p\) 在…
题目描述 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果.由于她已经DT FC 了The big black, 她觉得这个游戏太简单了,于是发明了一个更加难的版本. 首先有一个地图,是一棵由 n 个顶点.n-1 条边组成的树(例如图 1给出的树包含 8 个顶点.7 条边). 这颗树上有 P 个盘子,每个盘子实际上是一条路径(例如图 1 中顶点 6 到顶点 8 的路径),并且每个盘子还有一个权值.第 i 个盘子就是顶点a_i到顶点b_i的路径(由于是树,所以从a_i到b…
http://www.lydsy.com/JudgeOnline/problem.php?id=4009 (题目链接) 题意 给出一颗无根树.有一些路径记为$P_i$,这些路径有两个端点和一个权值$W_i$.另外一些路径记为$Q_i$,同样有两个端点和一个权值$K_i$.对于每个$Q_i$,询问$P$中路径是它的路径的子集的第$K_i$大的权值. Solution 整体二分很明显.怎么维护信息呢.右转题解:http://blog.csdn.net/thy_asdf/article/details…
https://www.lydsy.com/JudgeOnline/problem.php?id=4009 https://www.luogu.org/problemnew/show/P3242 https://loj.ac/problem/2113 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果.由于她已经DT FC 了The big black, 她觉得这个游戏太简单了,于是发明了一个更加难的版本. 首先有一个地图,是一棵由 n 个顶点.n-1 条边组成的树(例如…
题目 [题目描述] 风见幽香非常喜欢玩一个叫做 osu! 的游戏,其中她最喜欢玩的模式就是接水果.由于她已经 DT FC 了 The big black,她觉得这个游戏太简单了,于是发明了一个更加难的版本. 首先有一个地图,是一棵由 $n$ 个顶点.$n-1$ 条边组成的树(例如图 $1$ 给出的树包含 $8$ 个顶点.$7$ 条边).这颗树上有 P 个盘子,每个盘子实际上是一条路径(例如图 $1$ 中顶点 $6$ 到顶点 $8$ 的路径),并且每个盘子还有一个权值.第 $i$ 个盘子就是顶点…
4009: [HNOI2015]接水果 Time Limit: 60 Sec  Memory Limit: 512 MBSubmit: 636  Solved: 300[Submit][Status][Discuss] Description 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果. 由于她已经DT FC 了The big black,  她觉得这个游戏太简单了,于是发明了一个更 加难的版本.首先有一个地图,是一棵由 n 个顶点.n-1 条边组成的树(例如图…
P3242 [HNOI2015]接水果 题目描述 风见幽香非常喜欢玩一个叫做 \(osu!\) 的游戏,其中她最喜欢玩的模式就是接水果.由于她已经\(DT\) \(FC\) 了\(\tt{The\ big\ black}\), 她觉得这个游戏太简单了,于是发明了一个更加难的版本. 首先有一个地图,是一棵由 \(n\) 个顶点.\(n-1\) 条边组成的树(例如图 \(1\) 给出的树包含 \(8\) 个顶点.\(7\) 条边). 这颗树上有 \(P\) 个盘子,每个盘子实际上是一条路径(例如图…
洛谷题目链接:[HNOI2015]接水果 题目描述 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果.由于她已经DT FC 了The big black, 她觉得这个游戏太简单了,于是发明了一个更加难的版本. 首先有一个地图,是一棵由 n 个顶点.n-1 条边组成的树(例如图 1给出的树包含 8 个顶点.7 条边). 这颗树上有 P 个盘子,每个盘子实际上是一条路径(例如图 1 中顶点 6 到顶点 8 的路径),并且每个盘子还有一个权值.第 i 个盘子就是顶点a_i到顶…
Luogu 我今天做两道整体二分结果全都是BZOJ权限题??? sol 我们抓住"盘子的路径是水果的路径的子路径"这个条件. 考虑每一个盘子路径\((u,v)\),讨论它可以作为哪些水果路径的子路径. 如果说\(u,v\)不是祖孙关系,那么水果路径的两端点就必须分别在以\(u\)和\(v\)为根的子树中.即若一个水果路径\((a,b)\)满足\((u,v)\)是它的子路径,则有\(dfn_u\le{dfn_a}\le{low_u},dfn_v\le{dfn_b}\le{low_v}\)…
题面 Luogu3242 Sol 考虑每个盘子怎样才能接到一个水果 分两种情况: 盘子的\(x, y\)在一条链上,那么水果的两点就要在这条链之外 不在的话,水果的两点就分别在盘子的两点的子树中 记录下每个点的\(dfs\)序,和这棵子树结束的\(dfs\)序 发现上述讨论就是相当于求水果这个点\((x, y)\)包含它的二维矩阵(盘子)有多少个 扫描线+树链剖分+树状数组+整体二分 矩阵的样子看代码 # include <bits/stdc++.h> # define RG register…
题链: https://www.luogu.org/problemnew/show/P3242 题解: 整体二分,扫描线+树状数组. 详细的题解:http://blog.csdn.net/thy_asdf/article/details/50363672 得到各个盘子影响的矩形区域后, 那么我们就是要对每个询问代表的点查询覆盖了它的权值第k小的的那个矩形. 首先有一个简化版的问题, 就是查询改点被覆盖了多少次.可以用扫描线+树状数组做. 然后对于现在询问的第k小权值, 我们就可以二分答案,即二分…
题面 洛谷 题解 20pts 对于\(n,P,Q\leq 3000\),暴力判断每条路径的包含关系然后排序\(kth\)即可,复杂度\(O(PQ\log P)\) 另30pts 原树为一条链. 发现对于每个盘子,也就是区间\(x,y\),那么对于包含这个区间的水果\(u,v\),要满足\(u\leq x\leq y\leq v\). 将水果和盘子放在二维平面上一维排序,一维用数据结构维护即可. 100pts 设对于一个点\(x\),我们\(dfs\)时第一次访问的时间为\(L_x\),回溯时时间…
POJ 2104 K-th Number 时空隧道 题意: 给出一个序列,每次查询区间第k小 分析: 整体二分入门题? 代码: #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> //by NeighThorn #define inf 0x3f3f3f3f using namespace std; +,maxm=+; int n,m,a[maxn],ans[max…