摘要: 题意简介 初始数对 \(( a , b )\),每次可将其一替换为二者之差或和,判断能否在保证任意时刻 \(a , b \geq k\) 的前提下得到数对 \(( x , y )\)。 思路 注意到取和操作可通过两次取差操作抵消,故只进行取差操作。\(( a , b )\) 直接向 \(( x , 阅读全文
posted @ 2025-11-17 21:55 FallingGardenia 阅读(7) 评论(0) 推荐(0)
摘要: 思路 删掉 \((r_1,c_1)\) 位置上值为 \(val\) 的棋子相当于再在原处放置一个相同的棋子使之异或后为 \(0\),故只需考虑放置新棋子后的影响。 显然一个棋子无法被攻击的充要条件是其所在行的异或和等于所在列的异或和,故使用 \(rval,cval\) 维护行和列的异或和,\(rcn 阅读全文
posted @ 2025-11-13 12:05 FallingGardenia 阅读(7) 评论(0) 推荐(0)
摘要: 简要题意 给定 \(n\) 个点的带权树,对每个点可选择 \(\leq k\) 条边清零边权,求最小化的以根节点为起点的所有链的边权和。 思路 令 \(dp_u\) 表示 \(u\) 子树内的最小边权和,首先会取到 \(\max \limits_{v \in son_u} dp_v\),然后贪心地删 阅读全文
posted @ 2025-11-13 12:04 FallingGardenia 阅读(10) 评论(0) 推荐(0)
摘要: 题意简介 给定一个长度为 \(n\) 的环状数组,每次询问给出 \(l,r,x\),依次遍历 \(i = l , \cdots , r\)(如果 \(l > r\),从 \(l\) 遍历到 \(n\),再从 \(1\) 遍历到 \(r\)),若 \(a_i > x\),则交换二者的值,输出最终 \( 阅读全文
posted @ 2025-11-13 12:04 FallingGardenia 阅读(6) 评论(0) 推荐(0)
摘要: 思路 注意到重要性质:每确定一对帐篷,那么这对帐篷所在行和列不能放置其他帐篷,这将解释后来的方案之间为什么不会互相冲突。 考虑设计 \(dp_{ i , j }\) 表示营地大小 \(i\) 行 \(j\) 列时的方案数,逐行计算,对于每一行的放置: 若第 \(i\) 行不放,直接转移 \(dp_{ 阅读全文
posted @ 2025-11-13 12:03 FallingGardenia 阅读(9) 评论(0) 推荐(0)
摘要: 思路 首先要观察出一个结论:虽然不限制同时持有雨伞的数量,但最优解中 Polycarp 一定不存在某一时刻同时持有两把伞。 考虑设计 \(dp_{ i , j }\) 表示在点 \(i\) 处持有第 \(j\) 把伞的方案数,其中 \(j = 0\) 时不持有任何一把雨伞。对于 \(dp_{ i , 阅读全文
posted @ 2025-11-13 12:03 FallingGardenia 阅读(8) 评论(0) 推荐(0)
摘要: 前言 这道题的题号于我比较有意义,于是就来写了。 思路 如果暴力枚举所有排列,时间复杂度为 \(O ( n ! )\),显然不能通过本题。 考虑贪心的做法,特别地,若 \(1 \leq a_i \leq 9\),直接从大到小排序即是最优。但对于 \(\forall a_i \in [1,10^9]\ 阅读全文
posted @ 2025-11-13 12:02 FallingGardenia 阅读(18) 评论(0) 推荐(0)
摘要: 思路 当 \(k = n\) 时,我们只需要用树上权值加和减去 \(s\) 到 \(t\) 的路径长度即可。 考虑对 \(s,t\) 是否在关键点组成的最小连通块内分类,记块内边权和为 \(sum\)。 若 \(s\) 和 \(t\) 都在连通块内,由特殊性质,当 \(s = t\) 只需恰经过每条 阅读全文
posted @ 2025-11-13 12:02 FallingGardenia 阅读(10) 评论(0) 推荐(0)
摘要: 题意简介 对于一个带权无向图,给出 \(Q\) 次操作,删除原图上边权小于 \(val\) 的边,查询某点所在连通块大小,在保证相对大小不变的情况下修改边权。 思路 考虑对原图建立最大生成树重构树,由于修改时不改变相对大小的特殊性,重构树的结构不会发生变化,故修改操作只需 \(O ( 1 )\) 修 阅读全文
posted @ 2025-11-13 12:01 FallingGardenia 阅读(10) 评论(0) 推荐(0)
摘要: 思路 一个简单的观察是以 \(a\) 从小到大的顺序操作能将所有可加的边都加上,因为操作 \(a = i\) 时不会使小于 \(i\) 的点增加新边,进而产生新的 \(a < i\) 操作。则有一个暴力的思路是从 \(1\) 到 \(n\) 枚举 \(a\),将所有 \(a\) 连向大于 \(a\) 阅读全文
posted @ 2025-11-13 12:00 FallingGardenia 阅读(6) 评论(0) 推荐(0)