随笔分类 -  题解

摘要:P3267 [JLOI2016/SHOI2016] 侦察守卫 题解 \(n\le 5\times10^5,D\le20\) 的数据范围显然想到 \(O(nd)\) 的树形 dp。考虑 \(d\) 这一维的状态设计。 容易想到的是和 \(d\) 有关的是子树内最浅的守卫点和最深的未被覆盖的点。但是这样 阅读全文
posted @ 2024-09-12 18:22 长安19路 阅读(24) 评论(0) 推荐(0)
摘要:Road of the King 题解 形成强连通图的必要条件是点 \(1\) 能在环中,于是考虑 \(1\) 号点形成的强连通分量 \(x\)。 这类图论计数题目往往考虑 dp,于是我们设 \(dp_{i,j,k}\) 表示走了 \(i\) 步,经过了 \(j\) 个点,\(1\) 号点形成的强连 阅读全文
posted @ 2024-09-11 21:51 长安19路 阅读(28) 评论(0) 推荐(0)
摘要:[ARC073F] Many Moves 题解 个人感觉其实还挺套路的题目。不配紫题。 对于两个玩意在数轴上跑来跑去这种题目,常见的套路是固定一个点的位置,用另一个点的位置设为状态。 对于本题,题目已经帮你固定了一个点,于是我们设 \(dp_{x}\) 表示一个点在当前要求的位置,另一个点在 \(x 阅读全文
posted @ 2024-09-10 20:48 长安19路 阅读(41) 评论(0) 推荐(0)
摘要:P4563 [JXOI2018] 守卫 题解 不愧是九条可怜的 \(\text{JXOI}\),只能说确实是道好题。 假设当前我们在求 \([l,r]\),我们不难发现 \(r\) 端点一定要放保镖,于是考虑 \(r\) 保镖的最大监视范围 \([x,r]\)。由题意得到对于 \([x,r]\) 中 阅读全文
posted @ 2024-09-10 17:56 长安19路 阅读(67) 评论(0) 推荐(0)
摘要:[ABC328G] Cut and Reorder 题解 题目不难,思维难度尚可。 首先需要发现的性质是 \(1\) 操作的次数最多只需要使用一次,使用多少次其实都是等价的。 \(n\le 22\) 显然考虑状压 dp。平凡的想法是设 \(dp_{i,j}\) 表示填数的状态为 \(i\),最后一个 阅读全文
posted @ 2024-09-07 17:32 长安19路 阅读(14) 评论(0) 推荐(0)
摘要:[ABC293Ex] Optimal Path Decomposition 题解 是一道难得一遇的好题。 对于题目中的两个限制,同时满足是困难的,于是考虑常见的套路:先固定其中一个,再计算另一个。 对于本题,显然 \(k\) 是有单调性的,于是考虑二分这个 \(k\),将最优性问题转化为可行性问题, 阅读全文
posted @ 2024-09-07 15:50 长安19路 阅读(27) 评论(0) 推荐(0)
摘要:[ABC155F] Perils in Parallel 题解 对于区间上的异或操作,常见的套路是 异或差分。我们知道异或就是不进位的加法,自然具有可差分,可前缀性,于是对 \([l,r]\) 区间 \(\oplus x\) 等价于 \(a_l\oplus x\),\(a_{r+1}\oplus x 阅读全文
posted @ 2024-09-07 11:15 长安19路 阅读(29) 评论(0) 推荐(0)
摘要:[ABC219H] Candles 题解 其实是挺有难度的一道题,是 这道题 的强化版。 显然人总是逐渐地远离原点。结合 \(n\le 300\) 的数据范围,考虑区间 dp。 显然的 dp 状态是设 \(dp_{i,j,t,0/1}\) 表示在区间 \([i,j]\) 中,时间为 \(t\),在左 阅读全文
posted @ 2024-09-07 10:17 长安19路 阅读(25) 评论(0) 推荐(0)
摘要:[HDU6647] Bracket Sequences on Tree 题解 一道纯靠自己推出来的换根\(dp+\)树哈希,写篇题解庆祝一下~~ 题意:给定一棵无根树,你可以任意选择根节点和遍历顺序,每次遍历时进入一个节点就标记一个(,离开一个节点就标记一个),问所有存在的括号序列有多少种,对998 阅读全文
posted @ 2024-03-07 21:51 长安19路 阅读(52) 评论(0) 推荐(0)
摘要:P2624 [HNOI2008] 明明的烦恼 题解 很好的一道综合题目。 显然考虑 \(prufer\) 序列。 预备知识:一个无向连通图在每个点给定度数的情况下的生成树数量是 \[\frac{(n-2)!}{\prod_{i=1}^{n}(d[i]-1)!} \]证明是容易的,由\(prufer\ 阅读全文
posted @ 2024-03-03 17:03 长安19路 阅读(28) 评论(0) 推荐(0)
摘要:P2532 [AHOI2012] 树屋阶梯 题解 容易发现答案是卡特兰数,那么考虑证明这一点。 考虑从左下角到右上角填满格子。 利用动态规划的思想,回忆一下某道 \(IOI\) 的题目 [数字三角形],每个格子的方案都只能由其左边或下边转移而来。可以结合图理解一下。 好,刚才这个定义显然很符合卡特兰 阅读全文
posted @ 2024-03-03 09:57 长安19路 阅读(38) 评论(0) 推荐(0)
摘要:P3200 [HNOI2009] 有趣的数列 感性地,我们认为在按照数值从小到大填数时每个时刻所填的奇数位的个数 \(x\) 不小于所填偶数位的个数 \(y\)。我们考虑如何证明这一点。 性质1:每一个偶数位上的数都要大于它前面所有的数。这一点应当是显然的。 性质2:每一个偶数位上的数都不小于它的下 阅读全文
posted @ 2024-03-02 17:50 长安19路 阅读(21) 评论(0) 推荐(0)
摘要:P4569 [BJWC2011] 禁忌 题解 前言:这道题补好了我的 \(AC\) 自动机和矩阵优化 \(dp\),功德无量。 题意:在字母集合 \(a→alphabet\) 中随机生成长度为 \(len\) 的字符串 \(s\) ,给定已知的数个字符串 \(T-i\),问将 \(s\) 分割成含有 阅读全文
posted @ 2024-03-02 10:21 长安19路 阅读(67) 评论(0) 推荐(0)
摘要:Link $\text{是概率与期望好题.}$ 预备知识:$long\ double$ 相关。 我们知道,用sizeof(long double)输出long double的内存是$16$字节(不同计算机会略有不同),但是请编译下面这段代码: std::cout << std::numeric_li 阅读全文
posted @ 2024-02-03 17:18 长安19路 阅读(12) 评论(0) 推荐(0)
摘要:网上的题解太粗糙了,我写篇详细的。 题目链接:BZOJ2905 题意应该很清晰。 多个单词(即模式串),想到$AC$自动机。 我们考虑在$AC$自动机当中一个串是另一个串的子串是什么情况。 设两个字符串为$S$和$T$,如果$T$为$S$的子串,那么由$fail$树的性质,$S$必有一个前缀节点$S 阅读全文
posted @ 2024-01-09 21:19 长安19路 阅读(11) 评论(0) 推荐(0)
摘要:首先想到的一定是二分。 本题的答案显然是具有单调性的。 那么问题转化为如何查询给定时间内如何满足。 我们考虑$dp$来解决。 注意到题目中的条件有三个:程序员$n$,模块个数$m$以及两个软件。显然在设$dp$状态时都需要考虑。 因此我们可以设$dp[i][j]$表示前$n$个程序员完成$m$个软件 阅读全文
posted @ 2024-01-04 21:19 长安19路 阅读(15) 评论(0) 推荐(0)
摘要:2023年最后一哆嗦 一边改题一边就给题解写了。 T1 这题看上去就像$exgcd$的题。 这种求间隔的题,先给方程列出来,再考虑解。 设火车在走过$m$个完整的来回之后可成立,走完$m$个完整的来回后走过$x$个时间到达了三班,又停止了$n$秒的同时乔琨醒来。 同理,设乔琨睡与醒过了$a$个完整的 阅读全文
posted @ 2024-01-01 14:26 长安19路 阅读(32) 评论(0) 推荐(0)
摘要:来一发线段树合并的题解。 脑子不够,数据结构来凑 $GXYZOJ$上这题到现在是不是只有我一个人拿线段树合并过了? 树上路径的问题大多都要转化为 $LCA$ 问题。找一个任意根,先预处理$LCA$,记每个个$LCA$为$\ p_i\ $,那每个玩家走的路径就可以转化为$s_i → p_i\ $和 $ 阅读全文
posted @ 2023-12-24 10:42 长安19路 阅读(23) 评论(0) 推荐(0)
摘要:题目链接: P3193 一道很好的综合题目。 一、题意分析 简化题意:给定一个仅含数字的长度为 $M$ 的模式串,请用数字填充一个长度为$N$的空串,使得模式串无法与该串的任何子串匹配。 二、解法分析 1.爆搜 首先想到爆搜。用$10$种方案填$n$个空,是$O(10^n)$的复杂度,加上$O(n) 阅读全文
posted @ 2023-12-04 20:32 长安19路 阅读(16) 评论(0) 推荐(0)
摘要:对于我这种蒟蒻都能一遍 AC 的水题嘛,我要不然放个代码就跑吧~~~ 算了,还是老老实实分析题意。 对于 如此小的可怕的数据范围,显然我们可以开一个结构体,分别存储每个元素在数组里出现的上一个数的位置,等差数列的差,这个数出现的次数和当前成立与否。 然后 $O(n)$ 扫一遍,特判一下某个数第一次和 阅读全文
posted @ 2023-08-24 16:33 长安19路 阅读(18) 评论(0) 推荐(0)