随笔分类 -  算法竞赛

CF/ABC/XCPC比赛的补题记录
摘要:prrblem 有个常规套路:每次选取一个后缀的物品,就可以保证选择的物品数量单调不降。因此将物品价值作后缀和处理,每次选取一个后缀的物品。 要满足“选取时间单调不降”的性质,可以对 t 数组这样处理:将所有时间取后缀最小值,得到一个单调不降的序列。按照这个序列与按照原序列选是等价的。 采用 阅读全文
posted @ 2025-02-23 20:07 jxs123 阅读(2) 评论(0) 推荐(1) 编辑
摘要:949 C 限时每日一题day2。这一次做出来了,但时间花得有点多,再接再厉吧。 一个不难的构造题。 首先能发现 以任意两个非 1 的相邻两数为端点 形成区间的答案 与 其他位置的答案 是独立的,因此问题转化为给定两个正数 x,y,中间夹着若干个 1,能否正确填充。 将数 阅读全文
posted @ 2025-02-22 11:15 jxs123 阅读(0) 评论(0) 推荐(0) 编辑
摘要:G 树状数组 + 树上启发式合并 考虑计算所有点作为 z 时的贡献,最后加和。 相当于所有包含 z 的路径 (x,y),其中满足:wx=wywz>wx,设现在要计算点 u 作为 z 的答案:将整个树分成 以 \(u 阅读全文
posted @ 2025-02-21 15:40 jxs123 阅读(1) 评论(0) 推荐(0) 编辑
摘要:1001 E1 限时每日一题day1。出师不利,脑袋糊涂了,没想出来这道题。 看完题解才发现这道题无比 eazy。。。 很明显每个人要删的点 u 必须满足这个性质: maxvTsubtree(u)w[v]>w[u]那需要找哪个 u 以确保一 阅读全文
posted @ 2025-02-21 15:34 jxs123 阅读(2) 评论(0) 推荐(0) 编辑
摘要:D 三分 & 反悔贪心 计算最大匹配数很简单,难点在于计算每种匹配数情况贡献的最大值。 贪心地想也能发现,对于每个集合,若固定选择线段的个数 cnt,最大贡献为: i=1cnta[n+1i]a[i]这个可以用前缀和预处理出来,以做到对于某个给定匹 阅读全文
posted @ 2025-02-19 15:26 jxs123 阅读(2) 评论(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 阅读(10) 评论(0) 推荐(0) 编辑
摘要:对于背包问题求方案数与具体方案,我想分为两种题型: 恰好型问题—— n 个数,每个 ai 满足一定范围(为定值,或取值范围是一个区间等),且a1+a2+...+an=k(a1,a2,...,an) 个数,以 阅读全文
posted @ 2025-02-18 17:53 jxs123 阅读(3) 评论(0) 推荐(0) 编辑
摘要:A 每次将当前 s 中以最左侧的连续一段 1 开头的后缀移动到 t,在 t 中留下这段 1,将剩下的后缀再移回 s,循环模拟即可。 code B 容易发现分数一定不会增加,只能尽可能保持不变。而题中还要在在分数最大情况下最小化数组长度,可以发现:只能删 阅读全文
posted @ 2025-02-17 17:30 jxs123 阅读(2) 评论(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 阅读(0) 评论(0) 推荐(0) 编辑
摘要:E 可以发现,对于某个 a[i],答案只可能是 a[i] 的约数,设其为 x。反过来想一下,若 x 能成为 k 个数的 gcd,则这 k 个数都是 a[i] 的倍数。因此,a[i] 的约数 x 可以在原数组中挑出 \(k 阅读全文
posted @ 2025-02-15 23:38 jxs123 阅读(4) 评论(0) 推荐(0) 编辑
摘要:E 比较有意思的思维题 按下标可以分为若干个组,先对每组内升序排序,再按值排序,一定是最优的。目前还不太会证明,以后有机会再补充证明,具体细节见代码。 code F 双指针 + 模运算式推导 首先特判掉 x=0 的情况,因为只有不含0的数组才符合要求,所以只需要将所有 a[i]=0 阅读全文
posted @ 2025-02-15 09:58 jxs123 阅读(8) 评论(0) 推荐(0) 编辑
摘要:H 贡献法 考虑计算01串中每一位对答案的贡献并求和: 由于每个连续段的贡献只有1,故可设定一个连续段的贡献是由这个连续段的第一个数字造成的。那么计算某一位的贡献,就只需要让这个数字成为某个连续段的开头即可。 具体地,假设计算第i位且s[i]=0。要计算这一位对答案的贡献,则要让这一 阅读全文
posted @ 2025-02-12 15:59 jxs123 阅读(1) 评论(0) 推荐(0) 编辑
摘要:一般这种题都涉及到概率。对于这种类型题目,直接用递归式表示状态来进行状态间的转移,并在计算过程中记忆化即可。若在转移式两侧出现了相同的状态,直接移项即可。 牛客周赛80 G ABC 350 E 阅读全文
posted @ 2025-02-10 10:03 jxs123 阅读(1) 评论(0) 推荐(0) 编辑
摘要:题目链接:problem 大致意思就是给定一个0~9字符串,计算所有结尾非0,且能被结尾数字整除的子串个数。 很容易想到能dp,但是如何推导是一个难点。具体需要利用到模运算式子来推导。 直接参照灵神题解:editoral 注意单独一个非0数字也合法,在每一个位置的转移前要赋上初值。 阅读全文
posted @ 2025-02-09 15:25 jxs123 阅读(3) 评论(0) 推荐(0) 编辑
摘要:多项式乘法可以用O(n2)逐项得到,但不高效。而FFT可以用O(nlogn)快速计算 利用FFT来解决算法题的例子: ABC392 G 要找给定数组中满足A+C=2B的升序三元组(A,B,C)的数量,可以通过构造多项式的方式巧妙计算: 设\(a=[1,2 阅读全文
posted @ 2025-02-09 09:49 jxs123 阅读(9) 评论(0) 推荐(0) 编辑
摘要:问题:给定a1,a2,...,an,对于每个i[1,n],求出从i左侧开始数 第一个和第二个 元素值>a[i]的位置 只求第一个,可以用单调栈来做。但要得到第k个,应该怎么做呢? 将数组按顺序构建双向链表 先将原数组按值排序,排序时要记录每个元素原来的 阅读全文
posted @ 2025-02-08 19:19 jxs123 阅读(3) 评论(0) 推荐(0) 编辑
摘要:期望定义式 E(X)=iXiP(X=Xi)期望的线性性 线性指的是加法和数乘。 和式的期望等于和式中所有项的期望之和,即: E(X+Y)=E(X)+E(Y)\[E(\sum_{i=1}^{n}X_{i})=\sum_{i=1}^{n}E(X_{i}) 阅读全文
posted @ 2025-02-07 20:54 jxs123 阅读(10) 评论(0) 推荐(0) 编辑
摘要:A exgcd exgcd(a,b,x,y)a,b已知,用于求解ax+by=gcd(a,b)中的某一组解 x,y;而求ax+by=kgcd(a,b) 的解,只需要将 exgcd(a,b,x,y) 求出的x,y阅读全文
posted @ 2025-02-05 21:29 jxs123 阅读(1) 评论(0) 推荐(0) 编辑
摘要:第一场区域赛,惨遭打铁。赛时只出了BCI。赛后补了DG,发现两道题都没有那么难,只能说还得加训。。。 C,I相对简单一些,就不写题解了。 code_C B 补得最难绷的一题。先写了一个栈维护dfs路径的写法,TLE15;又写了一个set维护结点之间访问关系的写法,\( 阅读全文
posted @ 2025-02-05 01:57 jxs123 阅读(6) 评论(0) 推荐(0) 编辑
摘要:赛时8题(实际上是7题,有道题数据水而被fst了...) E 这道题赛时做出来了,但看题解时看到了一个值得学习的重要结论。 结论:要将一个数组中的所有数变为相同的数x,操作为加1或减1,那么最小代价 <> x是中位数。 (若不知道这个 阅读全文
posted @ 2025-02-04 09:39 jxs123 阅读(2) 评论(0) 推荐(0) 编辑

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