随笔分类 -  进阶指南题解

摘要:分析 这题就推~~一些~~柿子。 考虑时间点 i[0,23] 安排了 ai 人。 设时间点 i 最多来 limi 个员工,我们有约束:ai[0,limi]。 然后我们还需要满足每个时间段被 Ri 人覆盖。 分个类: $i\in[7,23 阅读全文
posted @ 2022-07-17 16:39 HinanawiTenshi 阅读(39) 评论(0) 推荐(0) 编辑
摘要:这里提供一个线段树合并的做法,个人感觉思维难度和代码难度都不大,~~我一发过了这题,nice~~ 分析 把每个人对应的路径看成是询问,考虑如何处理这些询问: 可以发现对于一条路径 uv,相当于是 uv 依次打上 0,1,2, 这样的时间戳,然后最暴力的做法就 阅读全文
posted @ 2022-07-14 15:37 HinanawiTenshi 阅读(34) 评论(0) 推荐(1) 编辑
摘要:平面图 首先介绍一下平面图的相关性质: 若图 G 能被画在平面上且不同的边仅在端点处相交,则称图 G 为平面图。画出的没有边相交的图称为 G 的平面表示或平面嵌入。 一个图的平面嵌入会将整个平面划分成若干个互不连通的区域,每个区域称为一个面。 其中,无界的区域称作外部面,反之称为内部面。 阅读全文
posted @ 2022-07-11 15:24 HinanawiTenshi 阅读(96) 评论(0) 推荐(1) 编辑
摘要:分析 这题做法很简单: 跑一遍 MST(最小生成树),把这棵树建立起来,上面的边标记为树边。 枚举非树边 (u,v),记边权为 w,考虑这条边能够提供的增量 del。 具体来说:只需要求出树上 uv 的路径上的边的最大值 mx1 和严格次大值 $ 阅读全文
posted @ 2022-07-10 20:19 HinanawiTenshi 阅读(54) 评论(0) 推荐(0) 编辑
摘要:分析 这题就是一道需要分类讨论的图论。。 注意到题目中每个点只有一条出边,也就是说给出的图是一个内向的基环树森林。 首先进行预处理: 开一个并查集,这能够将两个点不在同一棵基环树的情况筛掉。 利用内向树随便找一个点跳到基环树的环(环上所有点记为“根”)。然后建反图,在反图上跑一遍 $\texttt{ 阅读全文
posted @ 2022-07-01 00:41 HinanawiTenshi 阅读(42) 评论(0) 推荐(0) 编辑
摘要:写完发现代码比别人的都长(悲 但是效率不错,~~在洛谷可以排在最优解第四页~~ 分析 大致思路比较简单: 枚举位(使用 dfs),从低位开始枚举变量的值,如果没填过就选取 [0,n1] 中没选取过的值填上。 当前位三个变量都得到值后,检查是否合法。 当全部位都合法输出结果即可。 接下来考 阅读全文
posted @ 2022-06-28 14:21 HinanawiTenshi 阅读(36) 评论(0) 推荐(0) 编辑
摘要:~~块乐~~ 分析 因为这题查询的是指定区间 [l,r] 的最大异或子段,我们很难不想到使用可持久化 trie 来搞。 然而,对于每次查询,如果单纯地使用可持久化 trie,那么必须要枚举右端点进行查询,那么每次查询的复杂度是 $O(n{\rm {l 阅读全文
posted @ 2022-06-27 20:52 HinanawiTenshi 阅读(77) 评论(0) 推荐(0) 编辑
摘要:好像没见到用 wqs 二分写的 emm,使用 wqs 二分的复杂度为 O(nlogn),吊打这题。 不熟悉 wqs 二分的可以先看: https://www.acwing.com/file_system/file/content/whole/index/content/587 阅读全文
posted @ 2022-06-21 21:17 HinanawiTenshi 阅读(67) 评论(0) 推荐(0) 编辑
摘要:思路比较有新意的区间 dp。 分析 直接用 f(l,r) 表示删除区间 [l,r] 的最大收益会发现无法正确处理删除后出现同色木块合并对应的贡献。 那我们考虑用更复杂的状态表示来维护之。 发现一个区间的右端点终究会有一个时候被删掉,所以利用其来进行状态转移。 我们用 \(f(l, 阅读全文
posted @ 2022-06-07 20:22 HinanawiTenshi 阅读(42) 评论(0) 推荐(0) 编辑
摘要:分析 这题可以拆成两道题来做: 第一题 首先,看到这个合并顺序,感觉十分不好下手,那么我们不妨绕过对合并的分析,看看问题能等价为什么: 随便写几个柿子,比如 1((14)(5(14))),发现运算的结果可以化到最简表述为没有括号只有 +- 的形式,而且加减在除了第一个位置必然是减( 阅读全文
posted @ 2022-05-05 16:30 HinanawiTenshi 阅读(39) 评论(0) 推荐(0) 编辑
摘要:这题是在我这两天身体不太舒服的情况下写的,写的比较折磨。。也许这道题同时让我更不适了吧 但是写完提交上去竟然直接过了,有点出乎意料。如果是数据水了或者找到 hack 数据可以发过来 分析 这题我们考虑将问题进行拆解: 首先,我们需要找出 DAG 的必须边(桥),DAG 上找必须边还是很简单的:对于一 阅读全文
posted @ 2022-04-07 11:18 HinanawiTenshi 阅读(57) 评论(0) 推荐(0) 编辑
摘要:我的解法可能比较诡异😰 分析 题意是给你一棵带权的树,求每个点到其它点的最长路。 因为需要求每个点的,因此考虑换根 dp。 考虑维护信息:f[u]u 到其它点的最长路(也就是所求答案),g[u]u 到其它点次长路,d1[u] 表示 u 阅读全文
posted @ 2022-03-30 11:42 HinanawiTenshi 阅读(28) 评论(0) 推荐(0) 编辑
摘要:创世纪差点创死我 分析 注意到题意中给出的每个点都能够限制某个点,如果从图论角度考虑,那么可以想到基环树。 又因为每个点 A[u] 都能够限制某个点 u,考虑将 A[u] 看作 u 的父节点,记为 fa[u]。 建图后,考虑如何处理环。 可以发现,对于基环树上 阅读全文
posted @ 2022-03-15 10:27 HinanawiTenshi 阅读(38) 评论(0) 推荐(0) 编辑
摘要:分析 这题不如说是一道数学题吧 hh。 考虑倒推,假设现在已经求出了第 i+1 行的结果 c,现在求第 i 行的结果,记为 y​,那么递推式为: \[ \begin{aligned} \frac{2}{3} y_1 - \frac{1}{3}y_2 = \frac{1}{ 阅读全文
posted @ 2022-03-04 11:58 HinanawiTenshi 阅读(63) 评论(0) 推荐(0) 编辑
摘要:比较好想的换根 DP,但是有坑点。 我的做法需要的代码行数应该比较少。。去掉头部就 40 行左右。 分析 约定 f[u] 表示以 u 为根节点的时候的最大流量,w(u,v)u,v 之间的边权。 首先考虑根节点为 u 的时候如何统计 f[u]阅读全文
posted @ 2022-03-02 12:09 HinanawiTenshi 阅读(34) 评论(0) 推荐(0) 编辑
摘要:思路比较毒瘤新颖的一道 DP!这题进阶指南讲得挺好,可以去看看~。 分析 不难想到越贪婪的孩子需要越多的糖,简单的证明:如果存在两个孩子 a,b​​,g[a]>g[b]​​ 且 b​​ 的糖果数大于 a​​ 的,那么交换她们的糖果数,显然不会影响她们和其它人之间的代价(即怨气值贪婪度 阅读全文
posted @ 2022-02-28 21:11 HinanawiTenshi 阅读(58) 评论(0) 推荐(0) 编辑
摘要:不仅题意不太清楚而且实现过程还有一堆细节的题目。。Orz 分析 其实这题就是给你 m 个同余方程,然后有 n 个变量 x(其中 x[3,9]),记第 i 个方程第 j 个变量 xj (其中 x[3,9])的个数为 阅读全文
posted @ 2022-02-18 17:34 HinanawiTenshi 阅读(81) 评论(0) 推荐(1) 编辑
摘要:有点毒瘤的模拟。 我用 set​ 乱搞编写了一个数据结构来维护,发现比很多人的代码跑得快,甚至在洛谷最优解前列,但是码量大了不少。 分析 实现的思路比较明显: 记一共有 m 个进程。 我们从 1m 枚举每个进程并进行处理。 在处理到第 i​​ 个进程 阅读全文
posted @ 2022-02-16 19:23 HinanawiTenshi 阅读(41) 评论(0) 推荐(0) 编辑
摘要:这题看起来不难然而一堆细节。。 ## 分析 首先不难看出这是一个类似于背包的 dp 问题。 考虑状态的设计:f(i,j,k) 表示当前考虑到第 i 个挑战,当前背包**剩余容量**为 j,前 i 个挑战中已经成功了 k 个。 那么我们可以进一步写出转移方程: - 第 i 阅读全文
posted @ 2022-02-15 12:05 HinanawiTenshi 阅读(55) 评论(2) 推荐(1) 编辑
摘要:分析 思路很有价值的一道题。 首先我们可以注意到,一种解的形式一定是一条 1n 的路径以及若干个环(当然可以是 0 个)。 因此下面只需要证明两个结论: 一条 1n 的路径(的异或值)一定能够被另一条 1n​ 的路径以及若干个环拼凑出来。 任意一个 阅读全文
posted @ 2022-02-14 23:12 HinanawiTenshi 阅读(67) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示