T207127 ++ 题解

原题

++

题目背景

题目描述

给定一个 n 个节点(编号为 1n)和 n1 条边构成的无向连通图。

构造一张新图:

  • 新图的点集与原图相同
  • 在新图中 u,v 之间有无向边 是 在原图中 dis(u,v)k充分必要条件k 为给定常量,dis(u,v) 表示编号为 u 的点到编号为 v 的点最短路的长度)

判断新图是否为二分图,若新图为二分图,输出"Yes",否则输出"Baka Chino"。

输入格式

第一行包含一个正整数 T,表示有 T 组数据。
对于每组数据第一行包含两个正整数 n,k。接下来 n1 行,每行包含三个正整数 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) n10
  • Subtask 2(24 pts) n100
  • Subtask 3(8 pts) n1000
  • Subtask 4(28 pts):图退化成一条链。
  • Subtask 5(24 pts):无特殊限制。

对于 100% 的数据,n105T10v1000k1000000

本题数据使用 CYaRon 生成。

  • 首先判断是否为二分图的条件是判断其是否有奇环。而对于树上路径 k 的限制,我们先考虑找到他的最长路,再看他的某些性质。换言之就是树的直径
  • 考虑如果树的直径 <k ,则这个新图显然没有连边,答案显然为 YES ,因此不妨设直径长度 k
  • 考虑对于一个点,如果他到的两个最远的节点,也就是直径的两个端点距离都 k ,那么显然出现了一个奇环,因此不满足条件
posted @   FOX_konata  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示