摘要:
1.选取树的重心p 2.从p出发进行DFS,求得所需的数组 3.执行cal(p) 4.删除p结点,对p的每颗子树(无根树)递归执行1~4步 此算法在蓝书中亦有记载 vector<pii>e[maxn]; int sz[maxn]; int vis[maxn]; int dp[maxn]; int k 阅读全文
摘要:
const int M=1e6; #define ls p<<1 #define rs p<<1|1 int a[M]; int b[M]; struct node{ int l,r; int cnt; }tr[M<<2]; void pull(int p){tr[p].cnt=tr[ls].cnt 阅读全文
摘要:
vector<int>e[maxn]; int n,m; int inscc[maxn]; int low[maxn],dfn[maxn]; stack<int>stk; int instk[maxn]; int tot,cnt; vector<int>scc[maxn]; void dfs(int 阅读全文
摘要:
同步更新,但是现在网站的latex还没渲染好 https://happycoding.me/posts/codeforces-round-1050-div4/ A 思路: 当$n$为奇数时,答案为$x$,否则为$0$ B 思路: 显然每条线段都要经过,答案为$n+m$ C 题意: 现有$2$侧:$0 阅读全文