树
MintGreenTZ
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #364 (Div. 1) B Connecting Universities
原题网址:http://codeforces.com/contest/700/problem/B 这道题有一个补集思想,对于一棵有根树,两点x,y之间的路径长可以看作两点之间的到根距离减去lca(x,y)到根的距离。假设根已经确定,要使两两的lca到根路径和最小,最小的情况是lca都是根节点,假如根节点的含特殊点最多的一棵子树所含特殊点<=k,那么肯定存在一种配对方案,使得每组点对之间的l原创 2016-07-26 22:18:13 · 325 阅读 · 0 评论 -
日常训练20161014 跟踪
考虑每一个点,如果一个点是一个陌生人会追到石神的点,要么是石神和陌生人在同一周期到达的点,要么是陌生人比石神晚到的叶节点,在这些点中取一个时间最晚的。有个细节是如果石神在某一点被追上了,就不要dfs子树了,否则答案就会更大。type edge=record y,next:longint; end; const MAXN=200050; var map:ar原创 2016-10-15 13:22:39 · 367 阅读 · 0 评论 -
NOIP2016 天天爱跑步
对于每条链,可以拆成两条,一条S到Lca,一条Lca到T,可以发现前者能被一个在now位置的观察者观察到的条件是0+dep[S]=w[now]+dep[now],因为向上跑时深度和时间的和不变,所以可以以深度和时间的和未关键字做hash,因为这条链不到根,所以用经典手法将这条链拆成两条到根的链。另一条Lca到T被在now位置的观察者观察到的条件是time[x]-dep[x]=w[now]-dep[n原创 2016-12-06 09:10:03 · 1051 阅读 · 0 评论