bzoj3011】的更多相关文章

[BZOJ3011][Usaco2012 Dec]Running Away From the Barn Description It's milking time at Farmer John's farm, but the cows have all run away! Farmer John needs to round them all up, and needs your help in the search. FJ's farm is a series of N (1 <= N <=…
题意 给出一棵以1为根节点树,求每个节点的子树中到该节点距离<=l的节点的个数 题解 方法1:倍增+差分数组 首先可以很容易的转化问题,考虑每个节点对哪些节点有贡献 即每次对于一个节点,找到其第l个父亲,这个操作可以用倍增在logn时间内完成 找到后将x-y这一段区间都加1,很容易想到用差分数组维护 方法2:主席树 考虑节点x和节点x的子树中的一个节点y,记点x到根节点的距离为dis[x] 若dis[y]-dis[x]<=l则满足条件 将不等式变形可得dis[y]<=dis[x]+l 即…
我们可以遍历得出每个节点到根节点的距离h,然后用可并堆进行维护.树形dp 我用的是pairing heap #include<cstdio> #include<algorithm> #include<queue> using namespace std ; struct node { long long value ; node * brother ; node * child ; node ( const long long value ) : value ( val…
可并堆 复习一下可并堆 维护一个大跟堆,每次把节点儿子打上边权标记,然后合并,可并堆上维护一个size,每次把大于l的弹出,size就是答案 程序中那个d写l和r速度差不多,我写l是表示右儿子到u的最长距离 #include<bits/stdc++.h> using namespace std; ; struct edge { int to; long long w; edge(, ) : to(to), w(w) {} }; int n; long long L; long long dis…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3011 题解 复习一下左偏树板子. 看完题目就知道是左偏树了. 结果这个板子还调了好久. 大概已经不会写左偏树了. 时间复杂度 \(O(n\log n)\). #include<bits/stdc++.h> #define fec(i, x, y) (int i = head[x], y = g[i].to; i; i = g[i].ne, y = g[i].to) #define dbg(…
https://files.cnblogs.com/files/Winniechen/usaco2012-2013.pdf 做的不是很好,还请见谅! 如果有什么疑问,可以QQ上找我. QQ号:1967199892 附上代码: BZOJ3010: [Usaco2012 Dec]Gangs of Istanbull #include <cstdio> #include <cmath> #include <algorithm> #include <iostream>…