Description
Input
Output
Sample Input
10 10 10 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 3 2 217394434 10 7 13022269 6 7 283254485 6 8 333042360 4 6 442139372 8 3 225045590 10 4 922205209 10 8 808296330 9 2 486331361 4 9 551176338 1 8 5 3 8 3 3 8 4 1 8 3 4 8 1 2 3 1 2 3 1 2 3 1 2 4 1 1 4 1
Sample Output
442139372 333042360 442139372 283254485 283254485 217394434 217394434 217394434 217394434 217394434
Data Constraint
我们考每个盘子对水果的影响。
每个盘子的路径,我们分两种情况讨论
1.a和b不构成祖先关系
那么它能影响的水果必须是起点在a或a的子树,终点在b或b的子树(起终点可调换)
2.a和b构成祖先关系
那么起点必须在b或b的子树,终点在c的子树之外。
我们发现满足要求的起点或终点在dfs序中都是一段连续的区间
我们以起点为x轴,终点为y轴,建一个坐标系,我们发现每个盘子对点的要求都可以用一个矩形来表示,每个查询只是查询一点,查询包含它的权值第k小的矩形
我们可以用经典的扫描线问题来解决。
对于y轴,开一个树状数组套权值线段树,支持区间修改和点查询。
问题解决,时间复杂度O(Nlog2N)
#include#include #include #include #include #include