04 2024 档案

摘要:P1173 [NOI2016] 网格 分讨+建图+点双 分析一下替换个数的上界,发现最多为 2,因为最坏情况下,也仍存在一个位置只有两个出去的方向(即边缘),堵住即可。 那么现在答案就只有 1012 四种情况。分开讨论: 1:当图中只有一个跳 阅读全文
posted @ 2024-04-28 13:41 Fire_Raku 阅读(43) 评论(0) 推荐(0) 编辑
摘要:P9753 [CSP-S 2023] 消消乐 这题想到了 50pts,想不出来怎么优化了。 50pts:考虑枚举子串左端点,模拟操作过程,直接用栈模拟,遇到相同的则删去,如果某个时刻栈为空,那么合法子串数加一。 考场上只想到为空的时候可消除,下面的性质才是关键的。因为我们枚举左端点,每次只判断了 \ 阅读全文
posted @ 2024-04-27 09:03 Fire_Raku 阅读(55) 评论(0) 推荐(0) 编辑
摘要:CF118E Bertown roads 结论+tarjan/dfs tree 首先图中有桥肯定无解,那么考虑不存在桥的时候怎么构造一种解。 现在图是个边双,有什么算法?tarjan。从 tarjan 入手,遍历过程将图分为了树边和返祖边(无向图中不存在横叉边和前向边,可以模拟 dfs 过程理解), 阅读全文
posted @ 2024-04-27 08:53 Fire_Raku 阅读(4) 评论(0) 推荐(0) 编辑
摘要:P3225 [HNOI2012] 矿场搭建 点双缩点+分讨结论 我们可以看看这样的点满足什么条件:去掉这个点以及所连出的边,图不连通。显然是割点,那么考虑将图用点双缩成树,发掘性质。 缩完是个森林,考虑度数为 012 分别讨论。很明显的,树上的叶子结点,即度数为 \(1\ 阅读全文
posted @ 2024-04-27 00:18 Fire_Raku 阅读(4) 评论(0) 推荐(0) 编辑
摘要:CF1197E Culture Code 无后效性+线性dp+线段树优化 看到求最值以及方案数,考虑 dp。当前的顺序显然是无从下手的,因为套娃的顺序是乱的,考虑能否找到偏序满足无后效性。可以按照 ini 从大到小排序,那么存在极大区间 [1,j][1,i), \(in_{j 阅读全文
posted @ 2024-04-26 23:59 Fire_Raku 阅读(11) 评论(0) 推荐(0) 编辑
摘要:P7961 [NOIP2021] 数列 这题想了一半,后面有点不敢想结果直接看题解了。 思考后发现,对于 aix,也就是二进制中第 x 位前的部分,它们都可能会影响到二进制中第 x 位后的进位,而 ai>x 的部分是不会影响到 x 位前的进位的。 阅读全文
posted @ 2024-04-24 21:05 Fire_Raku 阅读(8) 评论(0) 推荐(0) 编辑
摘要:P8866 [NOIP2022] 喵了个喵 构造模拟题,思路很简洁,但是代码不好写。 首先看到数据范围,发现 k 的数据范围很特殊,种类少一种就是部分分,所以 k 一定是关键的,先思考 k=2n2 的情况。 k=2n2 观察两种操作,对于即将进入的牌 x阅读全文
posted @ 2024-04-24 21:05 Fire_Raku 阅读(31) 评论(0) 推荐(0) 编辑
摘要:P7114 [NOIP2020] 字符串匹配 看到循环部分 AB,自然想要去枚举它,并且用哈希。开始想到的是倍增+hash求出最长循环的右端点,复杂度是 O(nlogn),结果不好写,没写出来。 我们先思考找到右端点怎么计算贡献。最朴素的,我们再枚举前缀 \(ABAB\cdots 阅读全文
posted @ 2024-04-24 21:04 Fire_Raku 阅读(61) 评论(0) 推荐(0) 编辑
摘要:P3953 [NOIP2017 提高组] 逛公园 求有向图中 1n 的路径中长度小于等于 dis(1,n)+k 的方案数。dis(1,n) 表示最短路。k50。 部分分 k=0,直接最短路计数即可。 我们发现有向图中存在后效性,不好动态规 阅读全文
posted @ 2024-04-24 21:03 Fire_Raku 阅读(10) 评论(0) 推荐(0) 编辑
摘要:P7914 [CSP-S 2021] 括号序列 看起来非常复杂的括号题,看到数据范围,大概确定是区间 dp,所以我们考虑怎么定义状态。 条件非常多,所以二维的状态肯定表示不了,考虑多加一维来定义不同的状态。 dpi,j,0:区间形式是 ***...*** 的方案数。 \(dp_{i,j 阅读全文
posted @ 2024-04-24 21:02 Fire_Raku 阅读(48) 评论(0) 推荐(0) 编辑
摘要:[AGC001F] Wide Swap trick+拓扑排序+线段树好题 看到题目的操作,显然是复杂、不好的。为什么?交换操作是无序的,我们不知道交换后对各个部分的影响,难以分析。这时候我们注意到 |PiPj|=1 的性质非常特殊,考虑从这里入手。 如果以值域为系,那么会发现排列中的每 阅读全文
posted @ 2024-04-24 20:59 Fire_Raku 阅读(5) 评论(0) 推荐(0) 编辑
摘要:P3354 [IOI2005] Riv 河流 树形 dp 我们很容易套路地用 fu,i 表示在 u 子树中,u 节点放了 i 个伐木场的最小花费。但是这样无法转移,原因是无法表示路径长度,也无法知道运送数量。 所以我们现在考虑增加状态,能够表示出距离。只考虑 \ 阅读全文
posted @ 2024-04-20 16:38 Fire_Raku 阅读(21) 评论(0) 推荐(0) 编辑
摘要:目录7月 dp做题记录The BakeryP5785 [SDOI2012] 任务安排P3195 [HNOI2008] 玩具装箱P3648 [APIO2014] 序列分割 7月 dp做题记录 The Bakery 这道题的状态转移并不难列,经典的分段问题,设状态 dpi,j 表示前 \( 阅读全文
posted @ 2024-04-20 11:37 Fire_Raku 阅读(3) 评论(0) 推荐(0) 编辑
摘要:目录6月 dp做题记录P5664 [CSP-S2019] Emiya 家今天的饭P8867 [NOIP2022] 建造军营[ARC115E] LEQ and NEQP3800 Power收集P3594 [POI2015] WIL 6月 dp做题记录 P5664 [CSP-S2019] Emiya 家 阅读全文
posted @ 2024-04-20 11:36 Fire_Raku 阅读(9) 评论(0) 推荐(0) 编辑
摘要:目录5月 dp做题记录P1064 [NOIP2006 提高组] 金明的预算方案 P1941 [NOIP2014 提高组] 飞扬的小鸟 P2679 [NOIP2015 提高组] 子串 P1850 [NOIP2016 提高组] 换教室P2831 [NOIP2016 提高组] 愤怒的小鸟P5020 [NO 阅读全文
posted @ 2024-04-20 11:34 Fire_Raku 阅读(8) 评论(0) 推荐(0) 编辑
摘要:P8595 「KDOI-02」一个网的路 树形 dp 显然我们贪心的先执行第一种操作,最后再连边。 森林中不同棵树互不影响,所以考虑最小化每棵树的操作次数。考虑 dp。 我们要把一棵树分成若干条链,那么考虑每个子树 u 中,节点 u 的情况有三种: 执行了第一种操作,成为单独一个点。 阅读全文
posted @ 2024-04-20 11:32 Fire_Raku 阅读(8) 评论(0) 推荐(0) 编辑
摘要:P7981 [JRKSJ R3] system 建图 看到这题,容易想到 iai,那么这个过程实际上形成了基环树森林。接下来分析操作在图上的变化。 我们以环上的每个节点作为根,手玩之后就可以发现,经过 k 次操作后,每个节点的值就是 2k 级父亲( 阅读全文
posted @ 2024-04-20 11:20 Fire_Raku 阅读(22) 评论(0) 推荐(0) 编辑
摘要:P9745 「KDOI-06-S」树上异或 2024.11.15 位运算trick+树形 dp 求出每个方案的答案肯定不现实。考虑转化贡献,我们求连通块对每个方案的贡献就行。计数问题当然首想 dp。 位运算又可以考虑按位计算。这样每个连通块就只有 0/1 两种贡献了,直接可以放到状态里。当然 阅读全文
posted @ 2024-04-19 20:43 Fire_Raku 阅读(19) 评论(0) 推荐(0) 编辑
摘要:P9414 「NnOI R1-T3」元组 树上背包 首先思考题意,每个方案都存在一个唯一的 x,所以我们可以枚举 x,计算有多少方案使得 LCAxx 上方的点一定不能选,那么就变成了在 x 子树内的选点问题。思考后可以发现,要满足题意 阅读全文
posted @ 2024-04-17 21:44 Fire_Raku 阅读(3) 评论(0) 推荐(0) 编辑
摘要:P6037 Ryoku 的探索 基环树 有两种思路: 将环上一条边断开,转化为树上问题 先考虑环上,再考虑环上每个点构成的子树。 考虑后者。首先基环树上深度遍历只会少走一条边,所以考虑哪条边没被走。可以发现,基环树上深度遍历完后没遍历的边一定在环上。那么如果起点在环上,没遍历的边一定是它在环上的两条 阅读全文
posted @ 2024-04-17 20:52 Fire_Raku 阅读(9) 评论(0) 推荐(0) 编辑
摘要:P9437 『XYGOI round1』一棵树 trick+换根dp 对于此类 「将数字顺次写下」 计算贡献的题目,通常按位考虑,并且考虑每个数作为 开头/结尾 时的贡献,方便计算。 因此,我们在这题中考虑每个数作为结尾时的贡献。那么这题就转化成:计算以 u 为根并且以 au 为结 阅读全文
posted @ 2024-04-16 21:46 Fire_Raku 阅读(10) 评论(0) 推荐(0) 编辑
摘要:P3523 [POI2011] DYN-Dynamite 二分+树上贪心 首先这题可以二分 K,转化为判定性问题:是否存在 m 个点使得所有关键节点的 disK。 那么意思就是,每个点可以控制 K 距离以内的关键点。那么我们可以从叶子节点向上贪心,实在覆盖不到 阅读全文
posted @ 2024-04-16 20:29 Fire_Raku 阅读(15) 评论(0) 推荐(0) 编辑
摘要:CF1788F XOR, Tree, and Queries 边权转点权+染色+构造 首先对于限制,可以转化。设 fu 表示 1u 的异或和,那么限制 (u,v,w) 就可以表示为 fufv=w。也就意味这如果我们将限制 \((u,v 阅读全文
posted @ 2024-04-13 17:04 Fire_Raku 阅读(5) 评论(0) 推荐(0) 编辑
摘要:P1155 [NOIP2008 提高组] 双栈排序 有思维的二分图染色题。 对于“双”类的题目,我们通常分开考虑单个时的性质。对于一个栈,有一个基本的定理: 若出现 i<j<k,有 ak<ai<aj,那么一定不合法,即没有合法的出栈顺序使之有序。 对于两个栈,我们相当于把序列 阅读全文
posted @ 2024-04-13 15:17 Fire_Raku 阅读(34) 评论(0) 推荐(0) 编辑
摘要:CF1626E Black and White Tree 换根 dp 树上路径行走问题,因其节点的转移不止于其子树有关,一般考虑换根 dp 或寻找新的转移顺序。 在这题里,考虑一个以 i 为点的子树,判断 i 是否可以走到子树中某个黑点,设 fu 表示 u 能否走到 阅读全文
posted @ 2024-04-13 14:19 Fire_Raku 阅读(6) 评论(0) 推荐(0) 编辑
摘要:P6594 [YsOI2020] 换寝室 upd 2024.11.15 树上差分+树形 dp 首先看到比较好处理的是老师的不满意值,一个边被割去的代价就是经过该边的老师数量。因为是离线的,所以转为树上差分预处理一下。 题目所求是最大值的最小值,这题里最大值越小越难达到,所以可以二分。 二分最大值后, 阅读全文
posted @ 2024-04-13 12:03 Fire_Raku 阅读(31) 评论(0) 推荐(0) 编辑
摘要:P9433 [NAPC-#1] Stage5 - Conveyors lca 维护树上路径 但是这题不是难在这里,考察的是分析问题答案构成的能力。我们可以从数据范围出发。 s=tk=n 每条边都要走两遍,显然是树上所有边权和 ×2k=n 可以构造一种 阅读全文
posted @ 2024-04-12 17:49 Fire_Raku 阅读(46) 评论(0) 推荐(0) 编辑
摘要:#6912. 「梦熊省选难度挑战赛 2023」奇迹之夜 树形 dp 调的好折磨。 距离小于交通范围 L 的一定是举办聚会,所以可以预处理出 gi 表示深度小于 i 的都开聚会的总人气和。其次可以建聚会时一定也能建日常活动,所以直接 wi=max(wi,mi) 阅读全文
posted @ 2024-04-11 22:03 Fire_Raku 阅读(50) 评论(0) 推荐(0) 编辑
摘要:P9352 [JOI 2023 Final] Cat Exercise upd 2024.11.15 树形 dp+trick+并查集 第一眼是:这是个无根树,猫移动的位置不会遵循以某固定根的树向子树跳,所以觉得这题有点复杂。 考虑到这题不是很贪心,那从 dp 思考。怎么 dp 没有后效性?但是又发现 阅读全文
posted @ 2024-04-11 21:13 Fire_Raku 阅读(17) 评论(0) 推荐(0) 编辑
摘要:P9669 [ICPC2022 Jinan R] DFS Order 2 upd 2024.11.15 树形 dp+回退背包 什么决定一个点的出现的位置?子树以内的点一定不会影响到,那么就先不考虑它。那我们可以描述这样一个过程,如果确定要去某个点,那么从根到目标位置,其实就是一个选子树进入再出来反复 阅读全文
posted @ 2024-04-10 20:39 Fire_Raku 阅读(52) 评论(0) 推荐(0) 编辑
摘要:P7929 [COCI2021-2022#1] Logičari 基环树 dp 基环树 dp 类似树形 dp,大致思路是把环断开,分类讨论之后树形 dp。 如果在树上做这题,设 fu,0/1,0/1 表示考虑到 u 结点,u 结点否/是染色、fau 否/是染色 阅读全文
posted @ 2024-04-07 21:55 Fire_Raku 阅读(13) 评论(0) 推荐(0) 编辑
摘要:P2680 [NOIP2015 提高组] 运输计划 二分+树剖 开始题目理解错了,这里的最短时间指的是所有路径的最大值。所以题目要求的就是让所有路径的最大值最小,显然可以二分。 二分最大值 x,那么假如一条路径长度为 d 并且 d>x,显然需要修改,即一定要删去路径上的一条边 阅读全文
posted @ 2024-04-07 13:45 Fire_Raku 阅读(20) 评论(0) 推荐(0) 编辑
摘要:P2542 [AHOI2005] 航线规划 trick+树剖 首先删边操作困难,考虑倒序处理。 发现题目中的关键性质:无论航线如何被破坏,任意时刻任意两个星球都能够相互到达。在整个数据中,任意两个星球之间最多只可能存在一条直接的航线。 这说明无论何时图都是连通的,那么我们完全可以建一棵树,再考虑加边 阅读全文
posted @ 2024-04-06 21:40 Fire_Raku 阅读(2) 评论(0) 推荐(0) 编辑
摘要:CF613D Kingdom and its Cities 虚树优化 dp 考虑无解的情况,若有两个重要城市相邻,那么无解。 对于有解的情况,朴素的如何求解最少占领的城市数?考虑从叶子节点开始向上贪心,假如当前 u 节点为关键点,那么对于它的子树 v,若它的关键点能到 v,就 阅读全文
posted @ 2024-04-06 20:27 Fire_Raku 阅读(5) 评论(0) 推荐(0) 编辑
摘要:P2495 [SDOI2011] 消耗战 2024.11.14 虚树优化 dp 模板题 想出树形 dp 简单。 优化需要注意到无用的转移很多,因为 k 小,所以如果能将单次 dp 减小到 O(k) 就可以做了。 想到虚树很好保留了树的必要形态,在这上面 dp 就可以了。 考 阅读全文
posted @ 2024-04-06 16:31 Fire_Raku 阅读(4) 评论(0) 推荐(0) 编辑
摘要:P10238 [yLCPC2024] F. PANDORA PARADOXXX 并查集维护连通性+结论+数据结构维护距离 题目的操作是删边通常复杂,并且不强制在线,所以离线倒过来加边。 题目要求的就是当前所有连通块的直径的最大值,考虑加边后两个连通块合并后直径的变化。有结论:合并后的连通块的直径两端 阅读全文
posted @ 2024-04-05 23:11 Fire_Raku 阅读(15) 评论(0) 推荐(0) 编辑
摘要:P8201 [传智杯 #4 决赛] [yLOI2021] 生活在树上(hard version) 结论+离线询问 或 结论+主席树 结论通过画图不难得出,树上任意一个点到 uv 的路径的并一定包含 uv 的路径,并且任意一个点到 uv 阅读全文
posted @ 2024-04-05 14:35 Fire_Raku 阅读(23) 评论(0) 推荐(0) 编辑
摘要:P8025 【树链剖分求祖先】 这题的题意简单,简单分类讨论一下这里就不赘述了。最后题目就简化成求一个点的 k 级祖先。 开始会的解法是倍增,但是常数过高被卡了。 常数更优秀的做法是树剖,每一次跳树链,最后可能有一条链太长只能跳一部分,这是因为树链剖分的 dfn 序是有序的,即每条链 阅读全文
posted @ 2024-04-04 23:23 Fire_Raku 阅读(14) 评论(0) 推荐(0) 编辑
摘要:P4577 [FJOI2018] 领导集团问题 2024.11.14 整体 dp 容易想到用 dp 求解问题。wi 只关心大小关系,先离散化了。 一个节点的选择只关心子树中选的最小的点。但其实我们并不需要最小的点具体到底是多少,所以只需要用一个状态框住值域就好了。 于是自然就设 \(f_{ 阅读全文
posted @ 2024-04-04 11:50 Fire_Raku 阅读(20) 评论(0) 推荐(0) 编辑
摘要:​P3521 [POI2011] ROT-Tree Rotations 线段树合并 首先左右子树交换只会改变「跨过左右子树的逆序对」数量,对其他逆序对不会有任何影响,所以我们选择对每个结点的左右子树求解,判断是否交换。 考虑对于每个节点建一个权值线段树,那么贡献就可以在 merge 操作中求解,原因 阅读全文
posted @ 2024-04-02 21:57 Fire_Raku 阅读(18) 评论(0) 推荐(0) 编辑
摘要:CF490F Treeland Tour 线段树合并 考虑维护 lisu,i/ldsu,i 当前子树 u 中以 i 结尾的上升子序列/下降子序列。考虑转移,实质上就是合并每个儿子的信息,用线段树合并即可。 考虑如何统计答案,当枚举到儿子 v 时,维护答案分 阅读全文
posted @ 2024-04-02 21:47 Fire_Raku 阅读(17) 评论(0) 推荐(0) 编辑
摘要:P7219 [JOISC2020] 星座 3 2024.11.14 笛卡尔树+整体 dp(线段树合并维护 dp) 能够发现要满足题目条件,只需要考虑到所有极大矩形就可以了。 极大矩形是哪些?因为顶部确定,如果知道底的位置,向左右两端尽可能延伸得到的矩形就是一个极大矩形。 那么一个极大矩形就只会被这段 阅读全文
posted @ 2024-04-02 20:08 Fire_Raku 阅读(67) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示