摘要: 前言 又是随机游走? 题目分析 看到加边,可能性太多了。但是为了让步数最大化,我们可以贪心地想,肯定要往前面连,而且越前面要走的期望步数肯定越大。并且,我们不会浪费边在终点上。于是,题目转变成了 \(1 \sim n - 1\) 连向起点 \(1\) 连若干条边,使得随机游走到终点的期望步数最大。 阅读全文
posted @ 2024-04-25 08:41 XuYueming 阅读(11) 评论(2) 推荐(1) 编辑
摘要: 前言 五一网课的例题,但是网上没有题解,所以来写一篇,就当攒 RP 了。题目可以在这里提交。原题是 Baekjoon - 19083,但是交不了? 题目简述 给你一个偶数 \(n\),求一个二进制数 \(x=\overline {a_1 a_2 \dots a_n}\),满足: \(x \equiv 阅读全文
posted @ 2024-04-23 09:52 XuYueming 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 前言 五一网课的例题,但是网上没有详细的题解(真的连题解都找不到啊),所以来写一篇,就当攒 RP 了。题目可以在这里提交。原题是 TopCoder - 10947,但是有了账号也交不了? 题目简述 有 \(n\) 张卡片,正面和反面分别组成了 \(1 \sim n\) 的排列。现在你需要将这 \(n 阅读全文
posted @ 2024-04-22 15:05 XuYueming 阅读(3) 评论(1) 推荐(0) 编辑
摘要: 前言 五一网课的例题,但是网上没有详细的题解(其实就是都没放代码),所以来写一篇,就当攒 RP 了。题目可以在这里(不强制在线)或这里(强制在线)提交。 题目简述 有 \(n\)(\(n \leq 5 \times 10 ^5\))个村庄排成一排,每个村庄里有一个人。第 \(i\) 个村庄里的人要去 阅读全文
posted @ 2024-04-19 09:24 XuYueming 阅读(12) 评论(5) 推荐(1) 编辑
摘要: 题目分析 首先可以确定的是需要枚举断边,所以我们希望两次枚举之间能有些关联。不难想到类树形 DP 的套路,建 DFS 树,只不过这题除了讨论和父亲之间的边,还要考虑返租边。以下钦定以 \(1\) 为树根。 树边 先从简单的树边开始考虑。考虑不经过 \(u\) 和 \(u\) 的父亲 \(v\),对答 阅读全文
posted @ 2024-04-01 18:05 XuYueming 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 题意简述 给定一张无向图,每条边有个哨兵,初始在边的中间。你可以把某个结点旁边的哨兵全部吸引或远离这个结点。给出最后每个哨兵在边的哪一端,请构造出一种可能的操作方案或报告无解。多种情况输出任意解,你不需要最小化操作步数。 题目分析 发现一个哨兵和且仅和最后一次关联这条边的操作有关,考虑使用“浮水法” 阅读全文
posted @ 2024-03-31 22:25 XuYueming 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 前话 貌似别人都是使用并查集维护的方法,然而由于排序、最短路等算法瓶颈,以下令 \(n\) 和 \(m\) 同阶,总的时间复杂度依然是 \(\Theta(n \log n)\) 的,那么并查集是否有点大材小用了。事实上,在建完最短路径树后,我给出了两种带 \(\log\) 的数据结构完成此题。 题目 阅读全文
posted @ 2024-03-19 16:28 XuYueming 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 题目分析 其他人要么倍增,要么左偏树,那我就来讲讲朴实无华的 dfs 序加上线段树的做法。 首先发现题目中明确指出了作乘法的时候一定是乘上一个大于零的数,这是为什么呢?首先把可以占领当前城池的战斗力的不等式列出来: \[h_j \le \left\{ \begin{array}{c} s_i \ti 阅读全文
posted @ 2024-03-14 18:46 XuYueming 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 题意简述 给定一棵树,求断掉一条边再连上一条边所得的新树直径最小值和最大值,以及相应方案(你可以不进行任何操作,即断掉并连上同一条边)。 题目分析 假设我们枚举断掉某一条边,得到了两棵树,并且知道它们的直径分别为 \(d_0, d_1\),那么如何连接一条边让新树的直径最大 / 最小呢? 最大:显然 阅读全文
posted @ 2024-03-14 18:45 XuYueming 阅读(4) 评论(0) 推荐(0) 编辑
摘要: COCI的题。 显然,手模样例发现答案分为以下几个贡献: 所有圆外面的那个大平面,贡献为 \(1\)。 每个圆至少被分成一部分,贡献为 \(n\)。 如果有一个圆被“拦腰截断了”,即整条直径上都被更小的圆填满了,就额外对答案贡献加 \(1\),这也是我们所求部分。 暴力跳 set 遇事不决,先打暴力 阅读全文
posted @ 2024-02-22 21:25 XuYueming 阅读(13) 评论(0) 推荐(0) 编辑