会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
ZifanOI
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
···
12
下一页
2024年12月18日
AT_agc032_d [AGC032D] Rotation Sort 题解
摘要: 考虑确定哪些点不动,这些点一定构成一个单调递增子序列,那么对于剩下的点: 若在它之前存在一个不动点大于它,则需要花费 \(b\) 的代价向前移动。 若在它之后存在一个不动点小于它,则需要花费 \(a\) 的代价向后移动。 如果两个都不存在,则它一定可以加入不动点序列。 考虑 dp,记 \(f_{i,
阅读全文
posted @ 2024-12-18 09:33 zifanwang
阅读(5)
评论(0)
推荐(0)
2024年12月7日
P7575 「PMOI-3」公约数 题解
摘要: 考虑 dp,记 \(dp_{i,j}\) 表示确定前 \(i\) 个数最后一个数为 \(j\) 的方案数,则: \[dp_{1,i}=[x_1\mid i]\\ dp_{i,j}=[x_{i-1}\mid j]\sum_{k=1}^m dp_{i-1,k}[\gcd(k,j)=x_{i-1}][x_
阅读全文
posted @ 2024-12-07 00:01 zifanwang
阅读(4)
评论(0)
推荐(0)
2024年12月5日
P7206 [COCI2019-2020#3] Lampice 题解
摘要: 显然可以对答案奇偶分别二分,判断用点分治。考虑对每个点记录到当前分治中心的路径正着和倒着的 hash 值,那么两个点之间的路径是回文路径可以用一个简单的式子表示,移项一下把跟一个点有关的值放到一边,用 unordered_map 记录/查询即可,需要卡常,时间复杂度 \(\mathcal O(n\l
阅读全文
posted @ 2024-12-05 23:30 zifanwang
阅读(22)
评论(0)
推荐(0)
2024年12月1日
AT_abc262_h [ABC262Ex] Max Limited Sequence 题解
摘要: 首先容易确定每个位置的上界,接下来考虑对每种上界分别求方案数,再乘起来。 对每一种上界将其对应的位置提出来,由于是区间 \(\max\),只需要关注每个位置的值是否到达这个上界 \(x\)。枚举一个前缀,考虑维护 \(f_i\) 表示最后一个达到上界位置为 \(i\),确定完这个前缀中所有数的方案数
阅读全文
posted @ 2024-12-01 23:10 zifanwang
阅读(47)
评论(0)
推荐(0)
P11024 [COTS 2020] 定序 Redoslijed 题解
摘要: 先把是否有色的约束处理掉。累一个前缀和,对每个位置判一下即可。 考察区间覆盖的性质,显然最后一个操作的区间内的颜色一定与其覆盖的颜色相同。考虑从后往前确定操作的顺序,一个操作只要满足这个条件就可以作为当前的最后一个操作,如果有多个满足条件的操作,随便取一个都合法。 考虑维护满足条件的操作,每次取出一
阅读全文
posted @ 2024-12-01 16:20 zifanwang
阅读(10)
评论(0)
推荐(0)
2024年11月29日
P11337 「COI 2019」IZLET 题解
摘要: 先考虑构建树的形态,显然可以将所有边按边权从小到大排序,构造最小生成树。注意到相邻的两个点之间的颜色数只可能是 \(1\) 或 \(2\),所以只考虑边权 \(\le 2\) 的就好了。 接下来考虑怎么染色。考虑从一个点开始 dfs,每次确定当前遍历到的点的颜色,考察当前点到父亲的边权: 等于 \(
阅读全文
posted @ 2024-11-29 17:36 zifanwang
阅读(4)
评论(0)
推荐(0)
2024年11月13日
AT_agc011_d [AGC011D] Half Reflector 题解
摘要: 用 \(1\) 表示 A,\(0\) 表示 B,观察进行一次操作后字符串会发生什么变化。首先当第一个数为 \(1\) 时,只会将第一个数变为 \(0\)。对于剩下的情况,手玩一下可以发现会将第一个数移到末尾,然后将所有数异或 \(1\)。 先考虑暴力怎么做,可以记一个指针 \(i\) 和当前应该给全
阅读全文
posted @ 2024-11-13 15:36 zifanwang
阅读(12)
评论(0)
推荐(0)
2024年11月11日
AT_agc012_f [AGC012F] Prefix Median 题解
摘要: 首先将序列排序,这是显然的。 考虑倒着确定 \(b\) 序列中的每个数。即从完整的 \(a\) 序列开始,每次删掉两个数,记录中位数。 先找出 \(b\) 序列合法的条件。容易发现对于所有 \(i\),在 \(b_{p_i}\) 成为中位数时,\(p_i,p_{i+1}\) 之间的所有数都已经被删除
阅读全文
posted @ 2024-11-11 16:31 zifanwang
阅读(11)
评论(0)
推荐(0)
2024年10月22日
AT_agc064_c [AGC064C] Erase and Divide Game 题解
摘要: 先考虑所有 \(l_i=r_i\) 时怎么做,可以建出反向 Trie 树,问题转化为从根开始每次向左子树或右子树走,第一个拿到空子树的人输,直接在 Trie 上 dp 即可。 考虑从叶子层开始对每一层的点合并两个子树的 dp 值,发现每一层值相同的连续段是较少的。于是可以维护这些连续段,每次合并要将
阅读全文
posted @ 2024-10-22 16:33 zifanwang
阅读(9)
评论(0)
推荐(0)
2024年9月30日
P11093 [ROI 2021 Day 2] 树制游戏 题解
摘要: 考虑对于一个解,将每对 \((e_1,e_2)\) 中 \(e_1\) 的终点权值 \(+1\),\(e_2\) 的起点权值 \(-1\),那么最终每个点的权值一定是 \(0\)。 考虑先将每条边的终点权值都 \(+1\),那么现在要做的就是选一些点将其起点和终点的权值都 \(-1\),使得最终每个
阅读全文
posted @ 2024-09-30 15:12 zifanwang
阅读(9)
评论(0)
推荐(0)
上一页
1
2
3
4
5
6
···
12
下一页
公告