- 博客(204)
- 收藏
- 关注
原创 [APIO2022] 游戏 题解
传送门注意到,原问题等价于加边,查询是否存在一个包含前 kkk 个点(令其为关键点)的环,并强制在线。令 LuL_uLu 表示节点 uuu 可达的编号最大的关键点,RuR_uRu 表示可达节点 uuu 的编号最小的关键点。那么,答案为 111 当且仅当存在 uuu 使 Lu≥RuL_u \ge R_uLu≥Ru。每当加入一条边 (u,v)(u,v)(u,v) 后,我们从 uuu 出发往外 dfs,不断尝试用 RuR_uRu 来更新其他的 RRR;同理,我们也从 vvv 在反图上往外 dfs,不断尝
2022-06-10 09:42:02 770
原创 「BalticOI 2022 Day1」Uplifting Excursion 物品 题解
感谢 此神仙 在这题上对我的帮助,这里表达对祂衷心的膜拜。传送门妙妙题。注意到所有物品的重量总和不超过 101000010100001010000,于是就是个裸的多重背包。使用单调队列优化的复杂度为 O(N4)O(N^4)O(N4),常数较大;使用二进制分组优化的复杂度为 O(N4logN)O(N^4 \log N)O(N4logN),常数较小且好写。具体两个能拿多少分没试过。首先思考一个简化版的问题:总重量不需恰好为 mmm,只需不超过 mmm。不难发现,此时我们可以直接贪心。具体来说,我们预先选上所有
2022-06-07 18:47:59 567 1
原创 【CF1684H】Hard Cut——从宏观到微观,不断地子问题转化,无与伦比的构造题
×3400\times 3400×3400 的神仙题,做自闭了。Description给定一个长度为 nnn 的 010101 串,你需要将它划分为若干个子串,使得将各个子串对应的二进制数加在一起,得到的是 222 的若干次幂。数据范围: 1≤n≤1061 \le n \le 10^61≤n≤106,时限 2.00s\texttt{2.00s}2.00s。SolutionPart 0: 何时无解首先,我们考虑何时无解。令 kkk 为 sss 中 111 的数量。当 k=0k=0k=0 时显然无
2022-05-22 11:33:07 390 2
原创 【ZJOI2015】醉醺醺的幻想乡 题解
浙江神选的划时代意义的究极神仙题,感谢 qlz 神仙的无私帮助。Description传送门Solution算法一第一问很容易想到网络流解决,考虑第二问。然而,费用的计算式并不是普通的一次函数,所以需要进行拆边。具体来说,考虑对各个点 uuu,将 S→uS \to uS→u 的边拆为若干条边,其中第 i(i≥1)i(i \ge 1)i(i≥1) 条边流量为 111,费用为 (aui2+bui)−(au(i−△)2+bu(i−△))=(2△i−△2)au−bu(a_ui^2+b_ui)-(a_u(
2022-05-21 22:22:23 251
原创 CF1680D Dog Walking 题解
Description传送门SolutionKey Observation对于任意序列 aaa 而言,其前缀最大值与前缀最小值的差,即为 aaa 的各个循环排列的最大前缀和。例如,对于 a={−4,2,3,3,−4}a=\{-4,2,3,3,-4\}a={−4,2,3,3,−4},其前缀最大值与前缀最小值的差 4−(−4)=84-(-4)=84−(−4)=8 即为其循环排列 {2,3,3,−4,−4}\{2,3,3,-4,-4\}{2,3,3,−4,−4} 的前缀 [1,3][1,3][1,3]
2022-05-18 13:31:32 231
原创 [AGC002F] Leftmost Ball 题解
非常妙的计数 dp 题,有利于我们训练思维。Description传送门Solution首先,本题显然是一道计数 dp\text{dp}dp 题。在构造 dp\text{dp}dp 之前,我们不妨先考虑什么样的盘面 aaa 是合法的。不难得到下面的判定算法:考虑从左到右扫描 aaa,维护前缀中 000 的数量及非 000 颜色的种数,那么 aaa 合法当且仅当前者始终不小于后者。考虑将上述判定流程内化到 dp\text{dp}dp 状态中。令 fi,jf_{i,j}fi,j 表示,目前钦定了前
2022-05-07 20:30:51 229
原创 [AGC002E] Candy Piles 题解
Description传送门Solution首先抽象问题,将原问题转化到一个平面上进行。考虑将 aaa 从大到小排序,并建出 nnn 个长方形,其中相邻两个长方形紧挨,从左到右第 iii 个长方形的宽度为 111,长度为 aia_iai。那么,博弈模型等价于从 (1,1)(1,1)(1,1) 出发,每次向右或者向左走,最终走出边界的人输。首先不难想到一个 dp\text{dp}dp。令 fi,jf_{i,j}fi,j 表示,当目前在 (i,j)(i,j)(i,j) 时(即在第 iii 个长方形
2022-05-07 18:22:45 222
原创 【省选联考 2022 D2T2】序列变换 题解
文章目录DescriptionSolutionPart 1: 抽象为树上问题与初步解决Part 2: x=0,y=1Part 3: x=1,y=1Part 4: x=1,y=0Description传送门SolutionPart 1: 抽象为树上问题与初步解决首先,我们对括号序列建出一棵树。接着,我们尝试将两种操作转化为树上的操作。定义位置 iii 的匹配点 pip_ipi 为与第 iii 个括号匹配的括号的位置,则考虑每一个满足 si=s_i=si=( 对应的 [i,pi][i,p_i]
2022-04-22 19:47:18 765
原创 【省选联考 2022 D1T2】填树 题解
Description传送门Solution为方便叙述,令 M=maxi=1n{ri}M=\max_{i=1}^n \{r_i\}M=maxi=1n{ri},p(u,v,l,r)p(u,v,l,r)p(u,v,l,r) 表示有多少种给 (u,v)(u,v)(u,v) 路径上的点钦定点权的方案数,满足各个 uuu 的点权 均在 [lu,ru][l_u,r_u][lu,ru] 范围内且最大值不超过 rrr,最小值不小于 lll。令 q(u,v,l,r)q(u,v,l,r)q(u,v,l,r) 表
2022-04-21 09:31:57 404
原创 数论版块——扩展 BSGS 与扩展 Lucas 定理 模板总结
文章目录BSGS & exBSGSDescription算法一(BSGS: 保证 gcd(a,p)=1\gcd(a,p)=1gcd(a,p)=1)算法二(exBSGS)Lucas & exLucasDescription算法一(Lucas: 保证 ppp 为质数)算法二(exLucas: 不保证 ppp 为质数)BSGS & exBSGSDescription给定 a,b,pa,b,pa,b,p,你需要找到最小的满足 ax≡b(modp)a^x \equiv b \pmod
2022-04-05 18:23:43 575
原创 【NOI Online 2022 提高组 B】【洛谷 P8252】讨论 题解
一口气写了 2700 多字,然而代码只有 1500 B(Description传送门Solution显然,我们所要做的事,就是构造出一对 (i,j)(i,j)(i,j),使得编号为 i,ji,ji,j 的人会讨论。算法一考虑枚举位置 ppp,接着再枚举包含位置 ppp 的 (Si,Sj)(S_i,S_j)(Si,Sj)。这样一来,条件 Si∩SjS_i \cap S_jSi∩Sj 就得到了满足,接下来还要判定 Si,SjS_i,S_jSi,Sj 是否存在互相包含的关系。不妨设 ∣
2022-03-26 20:54:39 1274
原创 【NOI Online 2022 提高组 C】【洛谷 P8252 】如何正确地排序题解
Description传送门Solution首先考虑将 min,max\min,\maxmin,max 给拆开。二者同理,我们不妨仅考虑求前者。对于 m=2m=2m=2 的情况可以随便做。下面我们先考虑 m=3m=3m=3 的情况。首先,明确所要求即 ∑1≤i,j≤mmax1≤k≤3{ak,i+ak,j}\sum_{1 \le i,j \le m} \max_{1 \le k \le 3}\{a_{k,i}+a_{k,j}\}1≤i,j≤m∑1≤k≤3max{ak,i+ak,j}不
2022-03-26 18:31:14 944
原创 [八省联考 2018] 林克卡特树 题解
这道题我前前后后做了一年,共过了 444 遍,每次都有的新的理解;这次我认为自己理解透了,于是就写了一篇题解。这道题是我入坑看到的第一道黑题(当时很萌,不知道黑题是什么,看到这题感觉很好玩),另外还有就是《切树游戏》和 Spiders Evil Plan,记载着我的回忆(Description传送门Solution算法一为方便叙述,令树根为 111,wu,vw_{u,v}wu,v 表示 u,vu,vu,v 之间的边权,son{u}\text{son}\{u\}son{u} 表示 uuu 的儿子
2021-12-18 18:06:44 525
原创 [省选联考 2021 A/B 卷] 图函数 题解
没错,NOIP 都结束了,我才补省选题。我是一只大鸽子!!1Description传送门Solution算法一直接暴力即可。每次计算 f(i,G)f(i,G)f(i,G) 的时候,暴力枚举 j∈[1,i]j \in [1,i]j∈[1,i] 并通过 O(m)O(m)O(m) 的 dfs\text{dfs}dfs 进行判定,所以每个 f(i,G)f(i,G)f(i,G) 的计算都是 O(nm)O(nm)O(nm) 的。注意到一共要计算 O(nm)O(nm)O(nm) 个 f(i,G)f(i,G)
2021-12-13 22:22:33 358
原创 CF1609 部分题解
赛时做出了 ABCDE,没有做出 FGH;目前已补掉了 F,尚未补掉 G,H。A令 bib_ibi 为 aia_iai 所含质因子 222 的个数,ci=ai2bic_i=\frac {a_i} {2^{b_i}}ci=2biai。不难发现,调整过程等价于将一共的 S=∑i=1nbiS=\sum_{i=1}^n b_iS=∑i=1nbi 个质因子 222 重新分配给所有的 ccc,使得所有值之和最大。根据贪心策略,将 SSS 全部分配给最大的 ccc 即可。B不难发现,最少删除次数
2021-12-05 15:51:07 473
原创 「Wdoi-4」Luogu P7872 题解
Description传送门Solution为方便叙述,令扫地的古明地觉为 A,走路的古明地恋为 B。首先,考虑当 A 和 B 的路线都固定时,如何找出最优解。分成两类讨论:A 的终点与 B 的终点相同(即 xs=xk,ys=ykx_s=x_k,y_s=y_kxs=xk,ys=yk)。此时两路线的最长公共后缀为一段非空的区间,在图中用黑色表示;剩余部分中,由 A 走的部分为绿色,由 B 走的部分为红色。不难发现,所有仅被绿色经过的点 (i,j)(i,j)(i,j) 的贡献均为 ai,j
2021-11-29 22:42:01 289
原创 ARC 129 C Multiple of 7 题解
Description给定整正数 nnn。构造一个长度不超过 10610^6106 的字符串,使得其中满足 ⌈\lceil⌈ 从左到右依次拼接起来,得到的十进制数是 777 的倍数 ⌋\rfloor⌋ 的区间 [l,r][l,r][l,r] 恰有 nnn 个。n≤106n \le 10^6n≤106Solution自闭了,构造题杀我!首先,考虑对于一个固定的数字串 SSS,其中有多少合法的子串 [l,r][l,r][l,r]。考虑使用前缀和维护。令 aia_iai 表示,[i,∣S∣][i,
2021-11-22 21:49:10 889 1
原创 【AGC 055 C】Weird LIS 题解
Description传送门Solution这是一道神仙题。考虑对于某个固定的 AAA 判断其是否合法,并得到合法的充分必要条件。首先,AAA 的极差不得超过 111。这是为什么呢?考虑 PPP 的某个最长上升子序列 {Pp1,Pp2,⋯ ,Ppk}\{P_{p_1},P_{p_2},\cdots,P_{p_k}\}{Pp1,Pp2,⋯,Ppk}。对于每个位置 iii,若 i≠Pp1,i≠Pp2,⋯ ,i≠Ppki \neq P_{p_1},i \neq P_{p_2},\cdots,
2021-11-19 18:36:40 378
原创 欧拉回路与道路 详解
文章目录费马小定理定理证明法一法二引理证明应用LemmaProve欧拉定理定理证明应用例题 1DescriptionSolution例题 2DescriptionSolution卢卡斯定理定理证明应用威尔逊定理定理应用中国剩余定理定理应用扩展欧几里得算法 & 扩展中国剩余定理算法应用*BSGS*原根与阶性质应用打 * 的为 888 级考点,考到的概率不是很大。费马小定理定理若 gcd(a,p)=1\gcd(a,p)=1gcd(a,p)=1 且 ppp 为质数,则 ap−1≡1(modp)a
2021-11-19 11:39:46 4621 1
原创 「JOI 2018 Final」毒蛇越狱 题解
Description传送门Solution这题神了。为方便叙述,令 aia_iai 表示第 iii 只蛇的毒性,Fi=∑j∈iajF_i=\sum_{j \in i} a_jFi=∑j∈iaj,Gi=∑i∈jajG_i=\sum_{i \in j}a_jGi=∑i∈jaj,其中 x∈yx \in yx∈y 表示 xxx 是 yyy 的子集;令某次询问中 ? 有 xxx 个,0 有 yyy 个,1 有 zzz 个。Part 1: 暴力一种朴素的做法是,暴力枚举每个 ? 填上 000
2021-11-16 17:25:31 416
原创 浅谈二分栈优化决策单调性 DP 的写法及细节
宏观使用双端队列维护三元组 (l,r,x)(l,r,x)(l,r,x),表示 [l,r][l,r][l,r] 的决策点为 xxx。中观当扫描到第 iii 个位置的时候:①进行转移②在队首处弹出过老的三元组③在队尾处弹出 xxx 已没有 iii 优的三元组④考虑队尾的三元组,通过二分确定 ⌈\lceil⌈ xxx 更优 ⌋\rfloor⌋ 和 ⌈\lceil⌈ iii 更优 ⌋\rfloor⌋ 的分界点,并将最后一个三元组分裂为两个⑤在队尾处插入以 iii 为决策点的三元组 (_,n,i)(
2021-11-14 15:35:18 846
原创 Codeforces Round #754 (Div. 2) 部分题解
文章目录前言SolutionsABCDObservation 1Observation 2SolutionEFCode前言神迹: 模拟赛切掉 A,C,E,但不会 B,D,F。真就涉及到一丢丢构造和贪心就不会做呗,我是真的菜。SolutionsA不难发现,每次操作可以将 a1+a3−2a2a_1+a_3-2a_2a1+a3−2a2 减小或增大 333。若令 ppp 为初始时的 a1+a3−2a2a_1+a_3-2a_2a1+a3−2a2,那么:若 p≡0(mod3)p \equi
2021-11-13 22:27:53 519
原创 关于换根 dp 的随笔
换根 dp\text{dp}dp 通常有两种思考方法:①考虑根从 xxx 变为 yyy 时,将 yyy 对 xxx 的贡献去除,再将 xxx 贡献到 yyy 处,最后再撤销操作;②考虑对每个点 xxx,处理出其外子树的 dp\text{dp}dp 数组;这可以通过额外一次从父亲向儿子的 dp\text{dp}dp 求出这个数组。①对于绝大多数题目来说,思考起来较为简便;②处理起来可能较为复杂,不够直观,但是是通法。...
2021-11-11 22:04:31 128
原创 Codeforces Round #752 (Div. 1) 部分题解
前言A令 bib_ibi 表示,有多少个 j(j≤i)j(j \le i)j(j≤i) 不后于 iii 被删除。那么答案为 NO 当且仅当: 对于每个合法的 bbb,均存在一个 i∈[1,n]i \in [1,n]i∈[1,n] 使得 (bi+1)∣ai(b_i+1)|a_i(bi+1)∣ai。不难发现 bbb 与 n!n!n! 种删数方案构成了双射关系,因此整数序列 bbb 合法当且仅当 ∀i∈[1,n]\forall i \in [1,n]∀i∈[1,n] 满足 1≤bi≤i1 \le
2021-10-31 14:36:32 408
原创 CSP-S 2021 游记
文章目录Day 0Day 1Part 1Part 2Part 3Day 2Day 0复习了除 SA 以外的所有提高组可能会用到的板子。Day 1Part 1早上复习了之前的博客,吃了中饭就过去了(考场上一位巨佬没好好吃中饭然后就……)。比赛大约 2:30 开始,我 1:30 到的,面到了 lrl 和平时我经常见到的人(比如 kyl,jth,jcy,pmt,yzh 等)。不知道为什么我们队伍是最后一个进机房的。进了机房发现对面是个 xxs,其一脸自信和调皮的样子让我恶心。写了快读,快输后,发现
2021-10-23 21:22:04 635 1
原创 CF1349F1 Slime and Sequences (Easy Version) 题解
Description传送门SolutionPart 1: 性质观察遇到这种输入量非常小的题,我们往往会想到找规律。先用暴力打个表出来试试吧1: 12: 3 13: 10 7 14: 41 39 15 1 我们发现,输入 nnn 后对应的答案之和为 n!nn!nn!n;因此,好序列的数量恰有 n!n!n! 种。这启发我们将好序列与长度为 nnn 的排列建立双射关系。考虑构造下面的双射:对于一个好序列 aaa 而言,将 aaa 中的元素从大到小排序;特别的,若两个元素的值相等,那么按
2021-10-23 09:12:15 213
原创 P7889 「MCOI-06」Eert Tuc Knil 题解
Description传送门Solution算法一对于每次询问跑一遍 dp\text{dp}dp 计算答案即可。期望得分 555 分。void dfs(int now,int fath){ for (int i=head[now];i;i=e[i].nxt){ int y=e[i].to; if (y==fath) dfs(y,now); dp[now]+=max(dp[y],0); } dp[now]+=a[now];}算法二为方便叙述,令所有节点的点权增量为 △\t
2021-10-23 09:06:13 199
原创 CSP-S2 前夜的反思与总结
文章目录正赛挂分篇模拟赛挂分篇刷题挂分篇解决方案一览其他注意事项总结正赛挂分篇CSP-S 2020 A: 写假导致爆 000(挂 100100100 分,要是不挂分就一等了啊啊啊)CSP-S 2020 B: 想到特判但特判判错NOIP 2020 A: 先乘后除 90→6090 \to 6090→60(挂 303030 分,要是不挂分就上 210210210 了啊啊啊)NOI 2020 D1T1(场外赛): 判错边界,不清空倍增数组 fau,ifa_{u,i}fau,i(挂 454545 分,要
2021-10-22 20:02:10 240 1
原创 P3159 [CQOI2012]交换棋子 题解
Description传送门SolutionPart 1: 简化版首先,考虑这样一个简化版的问题: 第 iii 行第 jjj 列的点被经过不超过 limi,jlim_{i,j}limi,j 次时,求最少移动步数。首先,我们把白棋看做没棋。特别的,若 ai,j=bi,j=1a_{i,j}=b_{i,j}=1ai,j=bi,j=1(即对应位均为黑棋),那么我们也将其均看做没棋。考虑网络流建模。为满足点的限制,将每一个 (i,j)(i,j)(i,j) 拆成入点 Li,jL_{i,j}Li,j
2021-10-16 20:19:22 156
原创 初赛准备错题本
单选CSP-S 2019 T3: 答案是 8∗60∗24∗2048∗1024∗328∗1024∗1024∗1024\frac {8*60*24*2048*1024*32} {8*1024*1024*1024}8∗1024∗1024∗10248∗60∗24∗2048∗1024∗32,其中分母表示 Byte→B→KB→MB→GB\text{Byte} \to \text{B} \to \text{KB} \to \text{MB} \to \text{GB}Byte→B→KB→MB→GB。NOIP 20
2021-09-01 22:08:00 127
原创 CF405E Graph Cutting 题解
Description给定一个包含 nnn 个点 mmm 条边的图 GGG,你需要将 GGG 划分为许多条长度为 222 的链,使得每条边都被恰好覆盖 111 次。1≤n,m≤1051 \le n,m \le 10^51≤n,m≤105Solution算法一首先,我们思考,对于一棵树该如何处理。考虑 dfs\text{dfs}dfs。令当前搜到了节点 uuu,我们先向每个孩子 vvv 递归。对于当前的孩子 vvv,若其子树无法完全匹配且存在一条剩下的边 (v,w)(v,w)(v,w),我们将
2021-08-30 09:19:26 147 1
原创 P3264 题解
DescriptionLOJ 传送门Solution算法一首先考虑只有一种频道的情况。注意到最终形成的是一棵树,并且 kkk 较小,这些启发我们做状压 dp\text{dp}dp。令 fi,sf_{i,s}fi,s 表示,目前树的根为 iii,且树内包含了情报站集合 sss。转移的时候,我们需要分类讨论 iii 的儿子数为 111 以及不小于 222 的情况。对于前者,转移形如 fi,s→fj,sf_{i,s} \to f_{j,s}fi,s→fj,s;对于后者,转移形如 fi,t+fi
2021-08-26 12:08:31 126
原创 P7838 「Wdoi-3」夜雀 treating 题解
Description传送门SolutionPart 1: 题意抽象结合对顶栈的思想,我们可以将题意抽象为对两个栈的操作。即,我们将 1,2,3,⋯ ,n1,2,3,\cdots,n1,2,3,⋯,n 依次放到 A 栈中,2n+1,2n,⋯ ,n+22n+1,2n,\cdots,n+22n+1,2n,⋯,n+2 依次放到 B 栈中。那么,辉夜所做的事情就是: 先选择 an+1a_{n+1}an+1,然后执行若干次下述操作: ⌈\lceil⌈ 删除一个栈中的某个元素并选另一个栈的栈顶元素 ⌋\rf
2021-08-22 21:06:52 146
原创 ABC215H 题解
枯了,想出来第一问不会第二问了 /kkDescriptionTakahashi 有 nnn 片两两不同的卷心菜,且它们正在被 mmm 个公司求购。第 iii 种类别的卷心菜有 AiA_iAi 片,第 jjj 个公司需要恰好 BjB_jBj 片卷心菜且这些卷心菜的类别必须是第 jjj 个公司需要的。如果 Takahashi 成功地达成了所有 mmm 的公司的需求,那么他就会被称作卷心菜大师。然而,Snuke 并不想让 Takahashi 美梦成真,所以他会吃掉几片卷心菜使 Takahashi 无论如
2021-08-22 10:36:22 187
原创 [Wdoi 2021 & Round 3] 夜雀 cooking 题解
Description给定一个长度为 nnn 的首项为 sss 且公差为 yyy 的等差数列。数列中的所有位置初始为蓝色。不过,一个可爱的妹子在其中等概率随机了 mmm 个位置并将它们染成了紫色。显然,紫是均匀分布的。现在你想要知道她染了哪些位置,因此你可以提出询问。每个询问格式形如 l r,表示查询 [l,r][l,r][l,r] 中所有蓝色位置的权值和。当你想要回答的时候,先输出 −1-1−1,再输出 mmm 个从小到大排列的数表示这些紫色的位置。TTT 次询问,当你的询问次数不超过 200T2
2021-08-19 20:41:41 139
原创 CF1545C AquaMoon and Permutations 题解
Description给定一个 2n2n2n 个长度为 nnn 的排列,你需要从中选出 nnn 个组成一个拉丁方阵。保证: 若对于每两个存在对应位置的值相同的排列连边,则此图有完美匹配。1≤n≤5001 \le n \le 5001≤n≤500Solution我们刚拿到这个方阵,第一步该如何处理呢?首先,如果某一列上,有一个数出现了恰好一次,那么该数所在的排列必然出现在最终的拉丁方阵里面。于是,选定它,然后将所有与它有连边的排列删掉。其次,如果所有数的出现次数都超过一次呢?不难发现,根据抽屉原
2021-08-14 11:21:46 236
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人