T207127 ++ 题解
++
题目背景
题目描述
给定一个 \(n\) 个节点(编号为 \(1\) 到 \(n\))和 \(n-1\) 条边构成的无向连通图。
构造一张新图:
- 新图的点集与原图相同
- 在新图中 \(u,v\) 之间有无向边 是 在原图中 \(dis(u,v) \ge k\) 的充分必要条件 (\(k\) 为给定常量,\(dis(u,v)\) 表示编号为 \(u\) 的点到编号为 \(v\) 的点最短路的长度)
判断新图是否为二分图,若新图为二分图,输出"Yes",否则输出"Baka Chino"。
输入格式
第一行包含一个正整数 $ T $,表示有 $ T $ 组数据。
对于每组数据第一行包含两个正整数 $ n,k $。接下来 $ n-1 $ 行,每行包含三个正整数 $ x,y,v $ 表示编号为 $ x $ 的点到编号为 $ y $ 的点有一条边权为 $ v $ 的无向边。
输入数据保证合法。输出格式
对于每一组数据包含一行,如果“有解”输出
Yes
,否则输出Baka Chino
。样例 #1
样例输入 #1
5 5 2 1 2 1 2 3 1 3 4 1 4 5 1 5 3 1 2 1 2 3 1 3 4 1 4 5 1 5 8 1 3 3 1 2 1 2 4 6 2 5 2 5 2 1 3 3 1 2 1 2 4 6 2 5 2 7 4 1 2 3 1 3 3 2 5 3 2 6 3 3 7 3 2 4 2
样例输出 #1
Baka Chino Yes Yes Baka Chino Baka Chino
提示
样例解析
对于样例中的 第一组 数据:
原图:
新图:新图不为二分图,故输出
Baka Chino
。对于 第三组 数据:
原图:
新图:
新图为二分图,故输出
Yes
。数据规模与约定
本题采用捆绑测试。
- Subtask 1(16 pts)$\ $ :\(n \le 10\)。
- Subtask 2(24 pts)$\ $ :\(n \le 100\)。
- Subtask 3(8 pts)$\ $ :\(n \le 1000\)。
- Subtask 4(28 pts):图退化成一条链。
- Subtask 5(24 pts):无特殊限制。
对于 \(100\%\) 的数据,\(n \le 10^5\),\(T \le 10\),\(v \le 1000\),\(k \le 1000000\)。
本题数据使用 CYaRon 生成。
- 首先判断是否为二分图的条件是判断其是否有奇环。而对于树上路径 \(\geq k\) 的限制,我们先考虑找到他的最长路,再看他的某些性质。换言之就是树的直径
- 考虑如果树的直径 \(< k\) ,则这个新图显然没有连边,答案显然为 YES ,因此不妨设直径长度 \(\geq k\)
- 考虑对于一个点,如果他到的两个最远的节点,也就是直径的两个端点距离都 \(\geq k\) ,那么显然出现了一个奇环,因此不满足条件