随笔分类 -  算法竞赛

CF/ABC/XCPC比赛的补题记录
摘要:932C 限时每日一题day11。这回是思路对了,但不会实现。看完讨论区后才发现这题有个很巧妙的地方,可以避免复杂维护。 不难想到对于所有选择的物品,一定是按照 b[i] 的大小升序排列是最优的。此时 b 的贡献为:max(b[i])min(b[i])。 将所有物品按 阅读全文
posted @ 2025-03-06 22:07 jxs123 阅读(0) 评论(0) 推荐(0) 编辑
摘要:E 用 BFS 进行状态转移 因为相互包含的长回文串与短回文串的中心一定是相同的,可以想到从短回文串同时向两侧扩充相同字符,递推得到更长回文串的状态。而要求的是任意点对中的最短路,很容易想到用 BFS,只不过进行最短路转移时需要注意满足回文串性质。 初始状态有两种:单个点(\(len 阅读全文
posted @ 2025-03-05 18:04 jxs123 阅读(1) 评论(0) 推荐(0) 编辑
摘要:936D 限时每日一题day10。由于今天做的第一题特别 easy,于是直接又开了一道题,果不其然直接落败了qwq... 思路大致是对的——最优划分方式,划分决策都没什么问题。只是在一个地方卡住了(在注释中的感叹号位置)。具体细节见代码。 code 阅读全文
posted @ 2025-03-05 16:52 jxs123 阅读(1) 评论(0) 推荐(0) 编辑
摘要:935F 限时每日一题day9。这次非常顺,可以说是秒了(如果每次都能这样就好了qwq...) 将蘑菇的价值 v 按照给定的排列 p 排序,那么要选 k 个蘑菇时,前 k1 个蘑菇不能选,即等价于只能从第 k 个蘑菇开始选。 固定选择蘑菇的数量后,只能从 阅读全文
posted @ 2025-03-04 18:47 jxs123 阅读(1) 评论(0) 推荐(0) 编辑
摘要:D 确定好需要维护的信息 由于操作2交换巢中的每个鸽子这一步看着很暴力,因此考虑换一种思路:交换两个巢,这样操作的复杂度是 O(1) 的。 那么如何维护好信息呢?可以新加一种信息来构建鸽子与巢之间的关系——位置。因为位置是固定不变的,所以可以创建如下数组: pigeon[i]:编号为 阅读全文
posted @ 2025-03-02 11:54 jxs123 阅读(16) 评论(0) 推荐(0) 编辑
摘要:..I 限时每日一题day8。想法太简单了,没做出来纯属自己无能,应该想得更深入一些的。。。 只需要保证这一条关键性质就行:对于任意两个相邻的圆,某一个半径减小,则另一个圆一定增大等长的长度。若能注意到传递性,很容易能想到 圆之间的相邻关系 可以等价于 无向图中两个点用一条无向边相连,因此构建无向图 阅读全文
posted @ 2025-03-02 11:17 jxs123 阅读(3) 评论(0) 推荐(0) 编辑
摘要:943F 限时每日一题day7。忘了在 map<vector> 上二分的 trick。大致思路没问题,就差这临门一脚。 先回顾一下在 map<vector> 上二分的 trick: 原理:存储某个数在给定序列中的所有位置,进而可以通过在对应 vector 上二 阅读全文
posted @ 2025-03-01 11:22 jxs123 阅读(3) 评论(0) 推荐(0) 编辑
摘要:..C 限时每日一题day6。好久没有复习树的重心了,导致很显然的思路没有想出来。 官解中的两个思路都想到了个大概,但最后都没得到进展,还是有待提高思维的qwq... 解法1:注意到每一步合并必然是度数为1的结点向其邻点合并,否则整个图中 权值非0 的联通块会多于一个,显然最终不能合并到一起。(这一 阅读全文
posted @ 2025-02-28 11:03 jxs123 阅读(2) 评论(0) 推荐(0) 编辑
摘要:..E1 限时每日一题day5。第二次成功,这次是一道个人认为很简单的 dp,刚开始往组合计数方面想了导致浪费了些时间,应该能做得再快一点的。 可以发现第 i 天的方案与前 i1 天的决策是没有任何关系的,数据范围又很小,因此很可以 dp。 设 \(dp[i][j] 阅读全文
posted @ 2025-02-27 15:09 jxs123 阅读(3) 评论(0) 推荐(0) 编辑
摘要:edu163 C 限时每日一题day4。又一次失败了、、 这题是一道经验题,总结一下 “从中间分成一半,前后相同的字符串” 的性质: 若要找某个字符串的所有子串中上述类型字符串的最长长度,可以做到 O(n2)(暴力是 O(n3)):先枚举长度,对固定长度的所有子串采用滑动 阅读全文
posted @ 2025-02-27 15:09 jxs123 阅读(3) 评论(0) 推荐(0) 编辑
摘要:985 C 限时每日一题day3。这次没做出来,看完题解后感觉自己是sb。 二分答案 或者 dp,参考官方题解。 tutorial code_二分 code_DP 阅读全文
posted @ 2025-02-27 15:09 jxs123 阅读(4) 评论(0) 推荐(0) 编辑
摘要:prrblem 有个常规套路:每次选取一个后缀的物品,就可以保证选择的物品数量单调不降。因此将物品价值作后缀和处理,每次选取一个后缀的物品。 要满足“选取时间单调不降”的性质,可以对 t 数组这样处理:将所有时间取后缀最小值,得到一个单调不降的序列。按照这个序列与按照原序列选是等价的。 采用 阅读全文
posted @ 2025-02-23 20:07 jxs123 阅读(14) 评论(0) 推荐(1) 编辑
摘要:949 C 限时每日一题day2。这一次做出来了,但时间花得有点多,再接再厉吧。 一个不难的构造题。 首先能发现 以任意两个非 1 的相邻两数为端点 形成区间的答案 与 其他位置的答案 是独立的,因此问题转化为给定两个正数 x,y,中间夹着若干个 1,能否正确填充。 将数 阅读全文
posted @ 2025-02-22 11:15 jxs123 阅读(3) 评论(0) 推荐(0) 编辑
摘要:G 树状数组 + 树上启发式合并 考虑计算所有点作为 z 时的贡献,最后加和。 相当于所有包含 z 的路径 (x,y),其中满足:wx=wywz>wx,设现在要计算点 u 作为 z 的答案:将整个树分成 以 \(u 阅读全文
posted @ 2025-02-21 15:40 jxs123 阅读(4) 评论(0) 推荐(0) 编辑
摘要:1001 E1 限时每日一题day1。出师不利,脑袋糊涂了,没想出来这道题。 看完题解才发现这道题无比 eazy。。。 很明显每个人要删的点 u 必须满足这个性质: maxvTsubtree(u)w[v]>w[u]那需要找哪个 u 以确保一 阅读全文
posted @ 2025-02-21 15:34 jxs123 阅读(6) 评论(0) 推荐(0) 编辑
摘要:D 三分 & 反悔贪心 计算最大匹配数很简单,难点在于计算每种匹配数情况贡献的最大值。 贪心地想也能发现,对于每个集合,若固定选择线段的个数 cnt,最大贡献为: i=1cnta[n+1i]a[i]这个可以用前缀和预处理出来,以做到对于某个给定匹 阅读全文
posted @ 2025-02-19 15:26 jxs123 阅读(5) 评论(0) 推荐(0) 编辑
摘要:A b[i]=1 -> a[i1]=a[i]=a[i+1] b[i]=0 -> a[i1]!=a[i] or a[i+1]!=a[i] 显然让某个 b[i]=1 不成立很难。考虑让某个 b[i]=0 不成立。则当 \(b\ 阅读全文
posted @ 2025-02-19 13:05 jxs123 阅读(16) 评论(0) 推荐(0) 编辑
摘要:对于背包问题求方案数与具体方案,我想分为两种题型: 恰好型问题—— n 个数,每个 ai 满足一定范围(为定值,或取值范围是一个区间等),且a1+a2+...+an=k(a1,a2,...,an) 个数,以 阅读全文
posted @ 2025-02-18 17:53 jxs123 阅读(10) 评论(0) 推荐(0) 编辑
摘要:A 每次将当前 s 中以最左侧的连续一段 1 开头的后缀移动到 t,在 t 中留下这段 1,将剩下的后缀再移回 s,循环模拟即可。 code B 容易发现分数一定不会增加,只能尽可能保持不变。而题中还要在在分数最大情况下最小化数组长度,可以发现:只能删 阅读全文
posted @ 2025-02-17 17:30 jxs123 阅读(4) 评论(0) 推荐(0) 编辑
摘要:A 期望计算 + 推公式 首先,由期望的线性性可知和式的期望等于和式中每一项的期望之和。因此求i=2n|a[i1]a[i]|的期望,等价于求每一个|a[i1]a[i]|的期望,再求和。所以问题转化为求|a[i1]a[i]|的期望,其中\(a[i 阅读全文
posted @ 2025-02-16 09:08 jxs123 阅读(2) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩