导航

2016年3月22日

摘要: int dep[N],rt[25][N],siz[N];//rt数组需要在dfs之前置-1。 void dfs(int pos,int deep){ dep[pos]=deep; siz[pos]=1; for(edge *it=adj[pos];it;it=it->next){ if(!dep[it->id]){ rt[0][i... 阅读全文

posted @ 2016-03-22 08:51 tun~ 阅读(232) 评论(0) 推荐(0) 编辑

摘要: 题意: 给你一棵有n个节点的树,给你m次询问,查询给两个点,问树上有多少个点到这两个点的距离是相等的。树上所有边的边权是1。 思路: 很容易想到通过记录dep和找到lca来找到两个点之间的距离,然后分情况讨论。 一开始困扰我的问题是如果lca不是正中间的点,如何在比较低的复杂度的层面上求解中点。 倍 阅读全文

posted @ 2016-03-22 08:48 tun~ 阅读(269) 评论(0) 推荐(0) 编辑