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\) ,那么显然出现了一个奇环,因此不满足条件
posted @ 2023-10-20 06:57  FOX_konata  阅读(6)  评论(0编辑  收藏  举报