
基环树
make_it_for_good
这个作者很懒,什么都没留下…
展开
-
bzoj 2791 [Poi2012]Rendezvous 倍增lca 基环树
这是一个基环内向树森林。两个点如果在一个子树中,直接倍增lca。 否则两个点先走到环上,然后一个点不动,另一个点走到这个点。#include <bits/stdc++.h> using namespace std; #define N 510000 int n,q,top,cnt; int fa[N][21]; int vis[N],st[N],inc[N],root[N],deep[N]; in原创 2016-11-14 17:43:45 · 670 阅读 · 0 评论 -
bzoj 1040 [ZJOI2008]骑士 基环树 dp
这是一个基环树森林。 对于每块,对于环上的每一棵树设f[i][0/1]表示选/不选点i,i子树中的最大收益。 对于每个环设g[i][0/1][0/1]表示第一个点选/不选,第i个点选/不选的最大收益。 然后把每个基环树的收益加和就是答案。#include <bits/stdc++.h> using namespace std; #define ll long long #define N 11原创 2016-11-23 15:37:09 · 507 阅读 · 0 评论