摘要: 题目大意: 一棵树,在其中找两个点,使得其他点到这两个的距离的较小值的最大值的最小值及其方案。 思路: 首先显然一棵树的直径的中点到其他点的距离的最大值必定比其他点的小。 那么感性思考一下就将一棵树的直径平分成两段,在找分成的两棵树的直径的中点。 PS:dfs貌似要爆栈,用非递归或bfs。 代码: 阅读全文
posted @ 2016-12-11 19:43 HHshy 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有若干模式串,将某些模式串拼接起来(一个可以使用多次)形成一个长模式串,判断能否有两种或更多种不同的拼法拼成相同的模式串。 思路: 神奇的构图,暴力的求解。 可以发现,若有不同的拼法,则一个模式串的前缀要与一个模式串的后缀相同。 因此我们就将问题转化成:从两个模式串开始,不停的按照前后缀 阅读全文
posted @ 2016-12-11 12:41 HHshy 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有一张无向连通图,问从一条边走到另一条边必定要经过的点有几个。 思路: 先用tarjan将双连通分量都并起来,剩下的再将割点独立出来,建成一棵树,之后记录每个点到根有几个割点,再用RMQ求LCA计算。 注意:数组范围。 代码: 阅读全文
posted @ 2016-12-11 12:11 HHshy 阅读(427) 评论(0) 推荐(0) 编辑