随笔分类 -  图论-dfs序|欧拉序

摘要:第一题就LCA即可。不过推荐用Tarjan(最快,常数很小)。然后Tarjan的时候顺便就出一个dist[i],表示i节点到根节点的距离。求出了LCA,那么两点间的距离就为dist[u] + dist[v] - 2 * dist[lca]。 Code 1 #include<iostream> 2 # 阅读全文
posted @ 2017-01-22 21:57 阿波罗2003 阅读(197) 评论(1) 推荐(0) 编辑
摘要:因为只用两种颜色,所以相邻的省市的颜色一定相反,然后dfs/bfs就可以了。注意图可能不会联通。 Code 随便跑一遍最短路,注意加上抄书的时间。(包括结束的点) Code 首先用bfs把联通块求出来。然后给每个联通块附一个编号,接着按这个编号排序。(分出了所有联通块) 弄出来然后就可以考虑dp。用 阅读全文
posted @ 2017-01-17 17:53 阿波罗2003 阅读(337) 评论(1) 推荐(0) 编辑