摘要: 前置知识 树的直径 思路 首先,通过题目的样例和题面描述,我们可以得知,在不添加任何边的情况下,帽子叔叔巡逻整个村子要走 \(2 \times (n-1)\) 条边,解释一下,就是每条边都会走 \(2\) 遍,又因为有一颗树有 \(n-1\) 条边,所以就是 \(2 \times (n-1)\) 接 阅读全文
posted @ 2025-03-19 21:34 Panda_LYL 阅读(47) 评论(0) 推荐(0)
摘要: 定义 树的直径是指 树上任意两节点之间最长的简单路径。 显然一棵树可能不止一条直径,但它们长度相等。 求法 有 \(2\) 种解法求树的直径,分别是两次 dfs 和 dp。 两次 dfs 先从随机的一个点,假设是根节点,第一次 dfs 求出距离它最远的节点,假设这个节点为 \(u\),然后从 \(u 阅读全文
posted @ 2025-03-19 21:33 Panda_LYL 阅读(23) 评论(0) 推荐(0)
摘要: 算法 虽然标题上写着堂堂正正,辉煌的几个字就是本题正解,但是还有比正解更优的做法。 前置知识:二进制 GCD 当你学完二进制 GCD 之后,就可以直接写出代码,但是要记住取模。 代码 #include<iostream> #include<cstdio> #include<cmath> #inclu 阅读全文
posted @ 2025-03-19 21:31 Panda_LYL 阅读(18) 评论(0) 推荐(0)
摘要: 前言 欧几里得算法可以在 log 的时间复杂度内求出 个数的 GCD,但是这还是太慢了。 在一些题目中 ,欧几里得算法就会 TLE。 欧几里得算法 理论:\(\gcd(a,b) = \gcd(b, a \bmod b)\) 二进制 GCD 更相减损术 已知两个数 \(a\), \(b\), 求 \( 阅读全文
posted @ 2025-03-19 21:29 Panda_LYL 阅读(27) 评论(0) 推荐(0)