- 博客(138)
- 收藏
- 关注
原创 Petrozavodsk Programming Camp 部分题解
对 Petrozavodsk Programming Camp 的部分题做一些记录
2023-01-17 20:14:07 1651
原创 CF1053E Euler Tour
AddressCF1053ESolution可以发现,一个欧拉序 aaa 合法当且仅当:∀1≤i≤2n−1,1≤ai≤n\forall 1 \le i \le 2n - 1, 1 \le a_i \le n∀1≤i≤2n−1,1≤ai≤n;a1=a2n−1a_1 = a_{2n - 1}a1=a2n−1;∀al=ar\forall a_l = a_r∀al=ar,r...
2020-05-02 15:34:24 307
原创 AT5664「AGC040F」Two Pieces
AddressAT5664Solution神仙题 QAQ考虑非 DP 的做法。为了简化问题,我们用二元组 (x,d)(x,d)(x,d) 表示两点中坐标数值更大的点在 xxx 且坐标数值更小的点到坐标数值更大的点的距离为 ddd,每次有以下三种操作:将 xxx 和 ddd 同时加 111;若 d≥2d \ge 2d≥2,将 ddd 减 111;将 ddd 变为...
2020-04-25 22:52:16 762
原创 AT5663「AGC040E」Prefix Suffix Addition
AddressAT5663Solution在操作所加的序列前添加上若干个 000 就可以看做是任选一个区间加上单调不下降序列或单调不上升序列。由调整法可知,就其中一种操作而言,方案中区间覆盖的范围一定可以做到不相交。设 bi,cib_i, c_ibi,ci 分别表示操作 1 和操作 2 在第 iii 个位置加上的权值,满足 ∀1≤i≤n,bi+ci=ai\forall...
2020-04-16 14:12:57 441
原创 AT5697「AGC041F」Histogram Rooks
AddressAT5697Algorithm 1考虑每次取出区间中 hhh 的最小值建出笛卡尔树,令每个结点表示一个区间,从叶子结点往上 DP。考虑对每个区间内的所有列分类,设当前处理的高度为 xxx:在高度大于 xxx 的某个位置存在一个 車,现在可以任意填放 車;在高度大于 xxx 的所有位置都不存在 車,但这些位置都被其它 車 覆盖;在高度大于 xxx 的所有位置都不存在 車...
2020-04-09 14:30:43 493
原创 CF526G Spiders Evil Plan
AddressCF526GSolution因为边权都是正的,路径一定都会延伸到叶子(无根树中指度数为 111 的点)。容易证明,对于任意的 2y2y2y 个叶子,一定存在一种方案使得 yyy 条路径能够覆盖这 2y2y2y 个叶子且路径的并是一个连通块,yyy 条路径能够覆盖的叶子数量的上限也是 2y2y2y。于是问题变为选出 2y2y2y 个叶子,使得叶子两两之间的路径的并包含的边权和...
2020-04-09 12:59:26 229
原创 AT5695「AGC041D」Problem Scores
AddressAT5695Solution尝试简化第三个限制,设 k=⌊n−12⌋k = \lfloor \dfrac{n - 1}{2}\rfloork=⌊2n−1⌋,我们取前 k+1k + 1k+1 个数作为第一个集合,取后 kkk 个数作为第二个集合,因为这两个集合的差是所有选集合的方案中最小的,所以只要这两个集合满足条件,所有的集合都能满足条件。Algorithm 1因...
2020-04-02 16:50:49 460
原创 AT2046「AGC004F」Namori
AddressAT2046Algorithm 1针对 M=N−1M = N - 1M=N−1 的数据,原图是一棵树。因为树是二分图,考虑对原图进行二分图染色,每次操作一定是选择二分图两侧的点。考虑把问题进行转化,初始时令二分图某一侧的点上有棋子,每次可以移动任意一个棋子到相邻的没有棋子的点上,询问将所有棋子移到二分图另一侧的点上的最少操作次数。显然有解的必要条件是二分图两侧的点数相同,...
2020-03-23 22:17:01 230
原创 AT4515「AGC030F」Permutation and Minimum
AddressAT4515Solution将每个 A2i−1A_{2i - 1}A2i−1 和 A2iA_{2i}A2i 分为一组,简单讨论一下不同情况下的限制。若 A2i−1,A2iA_{2i - 1},A_{2i}A2i−1,A2i 都不为 −1-1−1,BiB_iBi 是确定的,可以直接将这两个元素删去。于是问题可以转化为:给定一个图,图中有 2N2N2N 个点,其中...
2020-03-23 22:11:52 227
原创 CF755G PolandBall and Many Other Balls
AddressCF755GAlgorithm 1设 fi,jf_{i,j}fi,j 表示考虑了前 iii 个球选出 jjj 组的方案数,转移显然为:fi,j=fi−1,j+fi−1,j−1+fi−2,j−1\begin{aligned}f_{i,j} = f_{i - 1, j} + f_{i - 1, j - 1} + f_{i - 2, j - 1} \\\end{aligne...
2020-03-23 22:06:54 341
原创 洛谷P5241 序列
Address洛谷P5241Solution考虑构造出一条 nnn 个点的有向链,那么每次就可以将任意个数的点缩成一个。因此我们可以将每一个本质不同的序列 BBB 与每加一条边都进行下面的其中一个操作一一对应:在有向链的末尾增加一个点;将有向链的前若干个点缩成一个点;若有向链包含的点数已经为 nnn,任加一条不会将点缩起来的边。对于其余的情形,因为在所需边数以及缩点的范围...
2020-03-14 17:43:32 236
原创 LOJ#508「LibreOJ NOI Round #1」失控的未来交通工具
AddressLOJ#508Algorithm 1设 fx,if_{x,i}fx,i 表示是否存在终点在点 xxx 且权值和模 mmm 的值为 iii 的路径,对每组询问记忆化搜索即可,时间复杂度 O(nmq)\mathcal O(nmq)O(nmq),期望得分 11pts\text{11pts}11pts。Algorithm 2针对 m=2m = 2m=2 的数据。询问时 uu...
2020-02-27 14:09:30 348
原创 LOJ#2336「JOI 2017 Final」绳
AddressLOJ#2336Solution题目的限制有些复杂,先做一些简化。首先染色一定不会折叠的过程中进行,因为厚度可以叠加的限制恰好保证了在折叠过程中染色不会比一开始染色更优,并且也没有必要把同一根线染色多次。由此可知,染色之后的绳子至多只有两种颜色。一个关键的结论:染色之后绳长可以缩短至 222 的充分必要条件是:除了首尾两段,其余的同色连续段的长度都为偶数。证明:...
2020-02-27 13:59:37 379
原创 [学习笔记] 分拆数的几种求法
对拆分数的多种求法做了简单的整理。问题令 fnf_nfn 表示将 nnn 进行分拆的方案数。例如,1+1+1+1=1+1+2=1+3=2+2=41 + 1 + 1 + 1 = 1 + 1 + 2 = 1 + 3 = 2 + 2 = 41+1+1+1=1+1+2=1+3=2+2=4 ,所以 f4=5f_4 = 5f4=5 。给出 n≤105(n≤105)n \le 10^5(n \...
2020-02-19 14:23:19 1401
原创 LOJ#2320「清华集训 2017」生成树计数
AddressLOJ#2320Algorithm 1先特判 n=1n = 1n=1。注意到一棵树 TTT 的价值只与每个点的度数有关,如果我们已经确定了每个点的度数 did_idi,由 prufer序列 可知,对答案产生的贡献为(任意两个连通块 i,ji,ji,j 之间的连边方案有 aiaja_ia_jaiaj 种):(n−2)!∏i=1n(di−1)!(∏i=1ndim)(...
2020-02-11 21:37:46 269
原创 [学习笔记] 二阶常系数线性齐次递推式的通项公式
参考 liuzibujian的博客。问题给出递推式 fn=afn−1+bfn−2f_n = a f_{n - 1} + b f_{n - 2}fn=afn−1+bfn−2,已知 f0,f1f_0, f_1f0,f1,求 fnf_nfn 的通项公式。结论设 x1,x2x_1, x_2x1,x2 为方程 x2−ax−b=0x^2 - ax - b = 0x2−ax−b...
2020-02-08 18:21:24 1804
原创 洛谷P4708 画画
Address洛谷P4708Problem求 n(n≤50)n(n \le 50)n(n≤50) 个点无标号的每个连通块都有欧拉回路的图的个数。答案对 998244353998244353998244353 取模。Solution每个连通块都有欧拉回路即为每个点的度数都为偶数。为方便起见,先把无标号转成有标号。把点标号的每一种重新排列看做是一种置换,定义两个图本质相同当且仅当...
2020-02-08 12:11:05 2687
原创 LOJ#3109「TJOI2019」甲苯先生的线段树
AddressLOJ#3109 洛谷P5342 BZOJ5513Solution挺有意思的题。第一问就是暴力在树上跳,设答案为 sss。考虑第二问,单点的情况直接处理,设路径上深度最小的点为 xxx,先从简单的情况入手。对于从 xxx 往下走形成的长度为 h(h>1)h(h > 1)h(h>1) 的链,如果往下走的过程中都是往左孩子走,链的编号总和为 ∑i=0...
2020-01-31 22:42:53 376
原创 BZOJ2844 albus就是要第一个出场
AddressBZOJ2844 洛谷P4869Solution建出原序列的线性基。我们知道线性基有如下性质:线性基中元素的子集异或和的集合和原序列的子集异或和的集合相同。线性基中的任意元素不属于其它元素的子集异或和的集合。由性质 2 得:在线性基中任选一个子集的异或和都互不相同,若线性基中共有 kkk 个元素,就共有 2k2^k2k 种互不相同的异或和。由性质 1 ...
2020-01-31 15:17:01 272
原创 [学习笔记] 二项式反演
其实本质上是容斥,虽然我之前一直不是很理解这个容斥。给定 kkk,则存在以下关系式:gk=∑i=kn(ik)fi⇔fk=∑i=kn(−1)i−k(ik)gi g_k = \sum \limits_{i = k}^{n} \binom{i}{k}f_i \Leftrightarrow f_k = \sum \limits_{i = k}^{n} (-1)^{i - k} \binom{i}{k}...
2020-01-31 15:12:44 407
原创 洛谷P5665 [CSP2019]划分
Address洛谷P5665Solution由于没有猜到结论,最后只拿了大众分。事实上,我们会发现最优解一定满足:对于每一个断点,最后一段的和在所有合法解中都是最小的。以下是证明:显然满足条件的解是唯一的。构造序列 bbb, 其中 bib_ibi 表示满足条件的解中倒数第 iii 段的和,并在序列 bbb 的末尾补上无限个 000。现在我们需要证明对于任意一个不满...
2019-11-27 09:07:09 578
原创 LOJ#2004「SDOI2017」硬币游戏
AddressLOJ#2004 洛谷P3706 BZOJ4820Solution尝试把这题讲得更为清楚些。Part 1左转这道题的弱化版 BZOJ1444 [JSOI2009]有趣的游戏。考虑建出 AC 自动机,则一个长度任意的字符串对应了 AC 自动机上的一条有向路径(可经过重复点)。直观的想法是设 PiP_iPi 表示到达 AC 自动机上结点 iii 的概率,最后答案即...
2019-08-22 10:22:03 410
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人