contest & vp 记录
command_block
2021-03-17 14:43:03
掀起热火朝天的大生产运动 (
$\color{green}\bf\Delta$ 表示 `contest` ,$\color{blue}\bf\Delta$ 表示 `vp`。 $\red\bigstar$ 表示已补完。
# $\color{green}\bf\Delta$ ARC 114 $\red\bigstar$
## 赛时
> 通过 AB
第一次尝试 `ARC`。
A 是个憨憨搜索。习惯了 CF 的 1A 感觉解法有点怪,所以 `15min` 才做掉,还丢了两发罚时。
B 是个显然的题,符合要求的集合一定是若干环的组合,而每个连通块恰有一个环,所以统计连通块数目即可。很快就做掉了。
接下来搞 C ,试了几次直接 DP 都做不了。考虑每次向序列中插入最大值,拆贡献后 DP 得到 $O(n^3)$ 做法,不会优化,于是就挫了。
后面的题都没心思看。
最后得了个 `Rank 655, Performance 1687` ,感觉实属一般。
## **赛后**
- **C** Sequence Scores
这个题压根就不用 DP 啊……直接大力拆贡献就好了。
对于一个给定的序列,一种操作数目最小的构造方法是 : 找出最小值,并对这个值的覆盖区间进行操作,然后除去这个值,分治为若干段处理。
考虑在一次操作的左端点将其统计。
对于位置 $A_i$ ,若存在 $A_j=A_i$ ,使得 $j<i$ 且 $\min_{k=j}^i\geq A_i$ ,那么其可以被从 $A_j$ 开始的一次操作顺便处理掉。
反之,则没有其他操作能处理这个位置,故该位置是某个操作的左端点。
枚举 $i,c$ 表示在第 $i$ 个位置填写 $c$ ,求该位置为某个操作左端点的方案数。
总方案数显然是 $m^{n-1}$。
对于不合法的方案,枚举(从右到左第一个符合条件的) $j$ 求和可得 :
$$S(i,c)=m^{n-i}\sum\limits_{j=1}^{i-1}m^{j-1}(m-c)^{i-j-1}$$
该式容易利用递推 $O(nm)$ 求出。
- [[DP记录]ARC114D Moving Pieces on Line](https://www.luogu.com.cn/blog/command-block/post-ji-lu-arc114d-moving-pieces-on-line)
- [[数学记录]ARC114E Paper Cutting 2](https://www.luogu.com.cn/blog/command-block/post-shuo-xue-ji-lu-arc114e-paper-cutting-2-post)
- [[??记录]ARC114F Permutation Division](https://www.luogu.com.cn/blog/command-block/post-ji-lu-arc114f-permutation-division)
- **总结**
A 耗时较长,提取问题本质的过程还不够严谨迅速,对一般组合问题的分析缺乏经验和耐性。
B 性质非常顺利的看了出来,还算没掉链子。
C 体现出了发散思维上的不足,在思考时往往走错方向就一去不返。
这是两重作用的结果 : 技巧积累并不是瓶颈,但应用经验(尤其是多方向试错)的缺乏限制了方向的判断。积累往往造成先入为主的反面效果,而混淆了问题的本质。
另外一点,在思考问题时要先对难度等级进行预判,在赛场/考场上能快速筛选掉很多过于复杂的思路,节省时间。
# $\color{blue}\bf\Delta$ ARC 111
## 赛时
> 通过 ABCD
这个 A 正常点了,分别维护余数和商,进行快速幂即可。`5min` 做掉了。
B 又是个并查集题,每个连通块分别处理,树的贡献是 $n-1$ ,其他任意图的贡献都是 $n$(至少能看成一棵基环内向树)。`5min` 做掉了。
C 是个构造题,难度开始起来了……一开始没啥方向,发了一会呆,心一横决定随便构造些方法,至少得到些强的上界。
想了一会发现只需要让最重的人不停跑就好了,拿到货了就让第二重的人跑,每个联通块分别处理就做完了。这个用了 `20min`。
D 又是构造题,好像很经典的样子。
显然 $c_i$ 相等的点一定是若干个强连通分量(根据基图的连通性),把将连通分量建立好后,其余的边从大指向小即可。
中途几次忘记保证有解白想半天……
然后不知道怎么构造强连通分量,甚至想要动用欧拉回路,但感觉太复杂了就没有继续想。
后来想到缩强连通算法 `Tarjan` ,那我随便找一颗 `dfs` 树然后其他边尽力向上指试试。好像卡不掉,那就交一发试试。过了!
这时候只剩 `40+min` 了,看了看 E 发现不对劲,印象中群友有提到过 ARC 出类欧,于是离场看了看真是类欧……又发现最后一题难度分奇高,遂弃赛。
插入原场面,大概得了个 `Rank 175, Performance 2319` ,感觉还行。
## **赛后**
- **总结**
本场发挥不错,主要靠的是运气和灵感。对组合问题的分析果断了一些……
但还是因为一些小失误弄出了两发罚时,下次要小心对待。
# $\color{blue}\bf\Delta$ ARC 059 $\red\bigstar$
## 赛前
`vp` 作为一种活动在机房内持续……
太晚的 `ARC` 洛谷没有爬,有点不方便,于是打算尝试一场较早的。
鉴于大家觉得之前的几场难度有点高,我偷偷看了看难度评分,选了一场比较平缓也没有难题压轴的 `Round`。
## 赛时
> 30min All kill
这个 A 不是 联合省选2020 D1T3 的 $5$ 分暴力吗? 这手气……
B 中字符串只有小写字母,枚举过半的字符,然后随便做。
C 当各个 $x$ 确定时就是个暴力卷积题。为一个区间时,利用乘法分配率,还是个暴力卷积题。
D 发现被删掉的按键为 `0/1` 是没有要求的,而显现的按键是有要求的,不妨看做每一步按键都有两种方案,最终除掉 $2^{|s|}$。
观察数据范围,考虑 $\rm DP$ ,设 $f[n][m]$ 为按了 $n$ 次键,字符串长度为 $m$ 的方案数,则有转移 :
$$
\begin{aligned}
f[i][0]&=f[i-1][0]+f[i-1][1]\\
f[i][j]&=2*f[i-1][j-1]+f[i][j+1]
\end{aligned}
$$
写完就过了。ARC 059,就这?
插入原场面,大概得了个 `Rank 4, Performance 3200` ,感觉牛逼。
## **赛后**
这一场感觉确实没有什么运气成分,只能说发挥平稳,没有降智,也没有手抖搞出罚时。
感觉这一场的题目 `ATC` 的风格体现得并不是很明显,难度相对低,而且白给 C 是中国选手的传统艺能。
还是老话说得好,“一个人的命运,当然要靠自我奋斗,但也要考虑到历史的进程……”
# $\color{blue}\bf\Delta$ ARC 107 $\red\bigstar$
## 赛前
四题场体验比较奇怪……本着 `vp` 为 `contest` 服务的原则,我们决定回到六题场。
再次偷看了难度评分,选了一个平缓又没有难题压轴的场。
## 赛时
> 30min 通过 ABCD
A 是个乘法分配律憨憨题。 B 随便化化式子。
C 看起来有点复杂,找几个性质 :
- 两个矩阵不同当且仅当行或列上的置换不同
- 且行列交换互不干涉
于是对行列分别考虑置换数,将能交换的两个位置连边,一个联通块内部可以任意置换,于是答案是联通块大小的阶乘的乘积。
D 设 $f[n][m]$ 表示 $n$ 个数和为 $m$ 的方案数,有转移 $f[n][m]=\sum\limits_{k=0}f[n-k][2(m-k)]$ 。
不难用类似前缀和的方法优化。
`26min` 内做了四题,感觉很稳。看 E 发现巨大神必……
打了个表发现奇怪性质,想了 `30min` 出了个奇怪做法,但没写完。
出了场发现性质是错的,正解实现其实非常简洁。
插入原场面,大概得了个 `Rank 99, Performance 2523` ,感觉还行。
## **赛后**
- **E** Mex Mat
将 $A_{i,j}=A_{i-1,j-1}$ 的位置称为好位置。打表发现若 $\min(i,j)\geq 5$ 则 $A_{i,j}$ 必为好位置。
则对 $O(n)$ 个不好的位置模拟,好位置批量计算即可。
- [[图论记录]ARC107F Sum of Abs](https://www.luogu.com.cn/blog/command-block/post-ji-lu-arc107-sum-of-abs)
- **总结**
本场发挥稳定,没有手抖和降智,但也没有出彩表现,就整了一些中规中矩简单题。
# $\color{green}\bf\Delta$ ARC 115 $\red\bigstar$
## 赛时
> 60min 通过 ABCE
开 A ,降智了,乱想一些奇怪的东西, 15min 才做掉。
BC 都是憨憨构造题, B 取矩阵边界,C 考虑下界就得到答案了。
D 想了半天都不会。转而看 E ,发现是白给线段树题,于是很快做掉了。
然后就啥也不会,摸了。被后浪吊打。
最后大概得了个 `Rank 83, Performance 2573` ,感觉还行。
## **赛后**
- **D** Odd Degree
考场上大概想了一半吧……
考虑图为一棵树的情况,选出奇度点集合 $S$ ,若 $|S|$ 为奇数,则方案数为 $0$ (显然) ,否则方案数恰为 $1$。
证明考虑归纳。
设 $f[u]$ 为处理子树后,是否留有奇点。根据结论,若子树内奇点个数为奇数,则 $f[u]=1$ ,否则 $f[u]=0$。
若各个子树的 $f$ 的和(包括本点)为偶数,则将其全部连接即可得到合法方案。显然方案是唯一的。
于是, ${\rm Ans}[k]=[k\bmod 2=0]\dbinom{n}{k}$
接下来考虑连通图,求出图的一颗生成树。
考虑不在生成树内的边集的任意一种状态,若原先要求的奇度点为偶数个,则考虑完这些边的影响后,要求树边形成的奇度点仍然为偶数个。于是问题转化为树的情况。
于是,则有 ${\rm Ans}[k]=[k\bmod 2=0]2^{m-n+1}\dbinom{n}{k}$
最终,将各个连通分量的答案卷积即可。若朴素实现,复杂度为 $O(n^2)$ ,若使用分治 `FFT` ,复杂度为 $O(n\log^2n)$。
- [[??记录]ARC115F Migration](https://www.luogu.com.cn/blog/command-block/post-ji-lu-arc115-migration)
- **总结**
在 A 题降智,进一步反映了积累造成先入为主的反面效果。
E 题实属出题人失误送分……看来上分一半还得靠场。
思考 D 题时一定程度上被数据范围误导了,提取问题核心矛盾的能力仍然不足。
# $\color{blue}\bf\Delta$ ARC 116 $\red\bigstar$
## 赛时
> 60min 通过 ABCDE
A 用约数个数定理,讨论一下 $2$ 因子个数即可。
B 排序后随便求和。
C 我的想法有点复杂,先考虑相邻两个数必须不同的情况,记 $d[x][k]$ 为长度为 $k$ 且结尾为 $x$ 的序列个数,这里 $k$ 只有 $O(\log n)$ 级别,不难利用约数求和 $O(n\log^2n)$ 求解。
然后相邻相同的元素用插板法计算方案即可。感觉这题还挺有意思的,可为什么难度评分这么低呢……
D :[[SDOI2019]移动金币](https://www.luogu.com.cn/problem/P5363) 的子问题。
E : [[NOIP2018 提高组] 赛道修建](https://www.luogu.com.cn/problem/P5021) 类似物。
F 想了一会,不会,遂知难而退。
插入原场面,成绩为 `Rank 82, Performance 2616` ,感觉还行。
## **赛后**
看了看 `friend` 榜,人均 ABCDE ,罚时还巨大低。流下了没有技术含量的泪水.bmp
本场 `ATC` 的风格体现得并不是很明显,难度相对低,对中国选手而言比较白给。
手速不太行,而且 E 题手抖搞出一发罚时,除此之外没啥问题。
看了看 C 的做法,其实可以 $1\log$ 的,还是我想复杂了。
F 属实牛逼,单独开个文章学习一下。
- [[??记录]ARC116F Deque Game](https://www.luogu.com.cn/blog/command-block/post-ji-lu-arc116f-deque-game)
# $\color{green}\bf\Delta$ ARC 117
## 赛时
> 10min 通过 AB
A 是憨憨构造题,随便咋搞。 B 排序后每次能操作的是一个后缀,于是差分,$+1$ 再乘起来。
然后开 C ,似乎和 ARC 107 E 非常相似……我还研究过这个真值表,结论是不可做 /yun
头铁了 1h 啥也不会,溜了。
成绩为 `Rank 702, Performance 1636` ,感觉拉跨。
## **赛后**
- **C** Tricolor Pyramid
官方解法和我猜想的也差不多……其实再多试错几次就好了。
将三种颜色看做 $0,1,2$ ,则题目中的运算 $a\otimes b=-(a+b)\bmod 3$。(没错,就是凑的,但也只可能这么凑了吧)
于是可以分别统计贡献,答案即为
$$(-1)^{n-1}\sum\limits_{i=0}^{n-1}\binom{n-1}{i}c_i$$
注意需要 $\rm Lucas$ 定理。
- **D** [[NC记录]ARC117D Miracle Tree](https://www.luogu.com.cn/blog/command-block/nc-ji-lu-arc117d-miracle-tree)
其实赛时已经想到欧拉序乱搞了,只是怀疑正确性,没敢写。
- **总结**
顺风场拼手速,逆风场练脑子。
对于真正有 ATC 风格的思维题还是不太适应,难度评分很低的题对我来说依然较为困难……
# $\color{blue}\bf\Delta$ ARC 104 $\red\bigstar$
## 赛前
一场 vp 两小时是吧,那一天四场不是问题啊 /cy
## 赛时
> 通过 ABCD
AB 是拿来凑数的吧,一个小学数学,一个暴力题。
C 有点意思,发现合法的方案每个联通块中的区间都一样长,区间 DP 即可。有若干细节。
班主任来和我商量备考学考的事情,花掉 5min
D 分数规划后变为有负次数的 OGF ,边乘边除即可 $O(n^3k)$。中间想错了几次细节。
E 题写到一半。
插入原场面,成绩为 `Rank 84, Performance 2601` ,感觉还行。(~~怎么老是精准命中这个名次~~)
## **赛后**
继续写了 15min 把 E 题过了。
大力搜索位置的排序情况,然后套上 [[数学记录]CF1295F Good Contest](https://www.luogu.com.cn/blog/command-block/post-shuo-xue-ji-lu-cf1295f-good-contest) 计算贡献系数即可。
- [[DP记录]ARC104F Visibility Sequence](https://www.luogu.com.cn/blog/command-block/dp-ji-lu-arc104f-visibility-sequence)
- **总结**
解题思路不够清晰明确,导致实现效率低下。
# $\color{blue}\bf\Delta$ AGC 031
## 赛前
第一次尝试 AGC 的 vp。
发现好多 AGC 被散做污染了,趁把题面看完之前,赶紧打几次 vp 。
## 赛时
> 通过 ABC
A 各个字符只能选一个或不选,将出现次数加一乘起来。
B 发现可供操作的同色球对子中,只需要考虑中间没有同色球的那些(即相邻的那些)。记 $f[i]$ 为只触发 $\leq i$ 的操作的方案数,随便 DP 一下。
C 有点意思,若不限 $a,b$ 则是格雷码。
将所有输出异或 $a$ ,则问题转化为 $a=0$。
由于有 $2^n-1$ (奇数)步,若 $b$ 含有偶数个 $1$ ,则无解。
否则,先考虑 $b$ 全为 $1$ ,且有 $m$ 位的情况,即从 $000...0$ 到 $111...1$ 。称此时的答案为“步进码”。
构造方案如下图 :(可以先大力搜索 $m$ 较小的情况观察规律)
![](https://cdn.luogu.com.cn/upload/image_hosting/p3mvwhge.png?x-oss-process=image/resize,m_lfit,h_400)
接下来考虑一般情况。
设 $b$ 中为 $0$ 的位有 $m$ 个。
对于 $b$ 中为 $1$ 的位,用步进码处理。将每个步进码复读 $2^m$ 次,缝合上正反交替的格雷码来处理为 $0$ 的位。
具体操作见代码 : [评测记录](https://atcoder.jp/contests/agc031/submissions/21886877)
插入原场面,成绩为 `Rank 158, Performance 2431` ,感觉还行。
## **赛后**
- **总结**
若做出同等难度的题目,水平较低的场中,`Performance` 会更高。目前来看,简单场更容易上分。
除机制外的具体原因?难的场区分度低(对于我这种蒟蒻),熟练度低导致罚时高,且卡题情况多见。
换句话说,其实是 `ARC` 的难度断点更加适合低水平选手罢了……
# $\color{blue}\bf\Delta$ ARC 105 $\red\bigstar$
## 赛时
> 通过 ABCDE
A 是迫真人肉搜索, B 瞎猜结论 gcd。
C 题搜索方案后贪心,有点麻烦,但本质不难。
D 题是个博弈,分类讨论。
- $n\bmod 2=0$
先手每次选择最大的一袋加入同一堆中(由于异或是**不进位**的加法,这样很难被异或掉)。
若第 $1,3,5...$ 大的和与第 $2,4,6...$ 大的和相同,则先手必败,否则必胜。
- $n\bmod 2=1$
此时后手是 $\rm Nim$ 游戏的先手。
后手只需每次将目前最大的一袋加入最大的一堆,不难发现这一堆总能大于其余的总和,故后手必胜。
E 题又是个博弈。
若只剩两个联通块(一个含 $1$ 另一个含 $n$),则接下来只会把内部的边连完,根据还能连的边的奇偶性即可得到答案。解题的关键在于奇偶性。
若两个大小为奇的联通块相连(合并),会新增奇数条可以连的边,但也会扣掉一条边,故无影响。
若两个合并的联通块中有一个偶数,则会新增偶数条可以连的边,但也会扣掉一条边,剩余边数奇偶性改变。
分类讨论 :
- $n\bmod 2=1$
合并结束时两个联通块一定一奇一偶,合并产生的影响是固定的,直接计算答案。
- $n\bmod 2=0$
若初始时与 $1,n$ 所在的两个联通块为双奇或双偶,则无法改变。
假设此时对 A 利好,若 B 改变,则 A 下一回合改回来。由于奇有偶数个,故最终不会改变。
若初始时与 $1,n$ 所在的两个联通块一奇一偶,则先手可以控制其变为双奇或双偶,于是必胜。方法类似。
最后 5min 过掉了 E。搞出了很多罚时。
插入原场面,成绩为 `Rank 55, Performance 2685` ,感觉不错。
## **赛后**
- **总结**
思维题做得挺爽,多练练吧。
找性质的时候,不要从顶层设计入手,而是尝试从一些杂碎入手。
思维方式只能慢慢地改……
- [[DP记录]ARC105F Lights Out on Connected Graph](https://www.luogu.com.cn/blog/command-block/arc105f-lights-out-on-connected-graph)
# $\color{blue}\bf\Delta$ ARC 112 $\red\bigstar$
## 赛前
在爆肝的路上一去不复返了(汗)
## 赛时
> 60min 通过 ABCD
A 白送,B 看错题白送。此时 20min 过去了。
C 题是博弈论,显然可以划分子树为子问题。
称拿掉根的金币的人为后手,记 $f[u]$ 为从 $u$ 点出发,先手和后手获得的硬币只差,$e[u]$ 表示先后手会不会转化。
对于 $u$ 的直接儿子 $v$ ,分为三类 :
1. $f[v]>0,e[v]=0$
2. $f[v]\leq 0,e[v]=0$
3. $e[v]=1$
先手首先拿完第一类,然后两人交替争夺第三类,最后某个倒霉蛋连续吃掉剩下的第二类。
于是不难转移。
D 首先观察性质,无论从哪里出发,总可以前往墙壁,然后可以转外圈,所以从外圈上出发时最劣的。
某个地面若可以到达,相当于点亮了一行一列。要么点亮全部的行,要么点亮全部的列。
将同行同列的地板连边,每个联通块分别考虑,可以用一个外圈的地板作为跳板,连接这个联通块。(若包含外圈,则无需连接)
用 `bitset` 维护每个联通块覆盖的行列集合。
插入原场面,成绩为 `Rank 86, Performance 2613` ,感觉还行。
## **赛后**
- **总结**
整了一些中规中矩简单题。目前看来水平大概在 $2400$ 左右,还有点不稳定。
- [[数学记录]ARC112E Cigar Box](https://www.luogu.com.cn/blog/command-block/arc112e-cigar-box)
- [[??记录]ARC112F Die Siedler](https://www.luogu.com.cn/blog/command-block/post-ji-lu-arc112f-die-siedler)
# $\color{green}\bf\Delta$ ARC 119
## 赛前
两个星期没打比赛啦,终于有个良心 ARC 可以打了。
赛前几乎把这事忘了,在写一些零零碎碎的东西,还剩两分钟的时候才开始准备,有点匆忙。
稳住,不慌.jpg
## 赛时
> 通过 ABCDE
A 暴力枚举 $b$ 即可。
B 一开始看错题意,浪费了一些时间。此时 `zhoukangyang` 老哥手感火热,已经切掉三题了 /fad
操作中 $0$ 能跳过 $1$ 的段,于是只考虑 $0$ 的移动。
发现将 $S$ 中第 $i$ 个 $0$ 与 $T$ 中第 $i$ 个 $0$ 匹配是最优的。
结论 : 记 $S$ 中第 $i$ 个 $0$ 的位置为 $p^S_i$ ,类似地有 $p^T_i$ ,则答案为 $\sum\limits_{i}[p^S_i\neq p^T_i]$
两边往中间走即可构造对应方案。
C 先考虑如何判定某个序列 $a_{1\sim n}$ 能否被清除。
操作是可逆的,于是任意操作都不影响序列能否被清除。
对于 $a_i$ 先将后面的数两个两个加上 $a_i$。
这样,对于 $a_{1\sim n-1}$ ,相当于做了个前缀和。对于 $a_n$ 则是奇数或偶数位置的和。
不断将前两个元素抵消,查看能否消完即可。
手玩能够发现,一个序列能被消除的充要条件是 : 奇数位置和 $=$ 偶数位置和。
写出前缀和的式子,移项,拿个 `std::map` 统计一下相同对子数即可。
D 这个题有点阴间,过 F 的两个大佬都跳了。
又看错了一次题意……晕。
对于红格 $(x,y)$ 看做二分图中的一条无向边。
对于二分图中的每个联通块,取出一棵生成树。
设这个联通块包含的左侧点(行)集合为 $S_1$ ,右侧点集合(列)为 $S_2$ ,通过适当地操作,可以 :
- 消除整个 $S_1$ ,消除整个 $S_2$ 但饶过某一列。
- 消除整个 $S_2$ ,消除整个 $S_1$ 但饶过某一行。
将必须消除的行数,必须消除的列数,可以自由选择是行或列的数目,都统计出来,然后枚举究竟消几行几列取 $\max$。
构造方案是在生成树上 $dfs$。儿子先操作,若儿子被父亲消到,则消除方向改变,否则不变。具体见代码。
有点难写……搞完已经过去了 80min。
E 我艹这不是憨憨题吗?
相邻两个数组成点 $p_i=(a_i,a_{i+1})$。
翻转 $(l,r]$ 的收益是 $|p_l.x-p_r.x|+|a_l.y-p_r.y|-|a_l.x-a_l.y|-|a_r.x-a_r.y|$ 。
处理绝对值时利用二维偏序即可。将坐标系翻转对称可以减少代码量。
成绩为 `Rank 27, Performance 2977` ,感觉不错。
## **赛后**
这个 F 好难啊,先放着吧。
# $\color{blue}\bf\Delta$ ARC 118
## 赛前
题做累了?来场 vp ,调整一下节奏。
## 赛时
> 30min 通过 ABC
A 二分一下并线性查找。
B 先考虑 $B$ 数组能为实数的情况。先支付整数部分,然后选择剩余量较大的优先支付。
(然而被卡精度了……惨)
C 先考虑 $n=3$ 怎么做,可以构造 $\{6,10,15\}$ 。
$n$ 更大时,加入是 $6$ 或 $10$ 或 $15$ 的倍数的数。发现符合题目限制。
D 搞了半天都没搞出来,应该很接近了。这个难度 gap 有点大啊……
插入原场面,成绩为 `Rank 164, Performance 2325` ,感觉一般。
## 赛后
- **D** Hamiltonian Cycle
先求出 $p$ 的原(特判 $p=2$),然后将 $a,b$ 写成 $g^x,g^y$。
于是问题转化为,有一个大小为 $p-1$ 的环,每次可以前进或后退 $x$ 或 $y$ 步,要求构造一个哈密顿回路。
若 $gcd(x,y,p-1)>1$ 则无解。
求出 $d=\gcd(p-1,x)$ ,此时 $d\perp y$ ,于是 $0,y,2y,...(d-1)y$ 模 $d$ 下互不相同。
可以证明,对于 $i\in\big[0,(p-1)/d\big),j\in\big[0,d\big)$ 的 $ix+jy$ 都是互不相同的。
将上述 $(i,j)$ 列成矩阵,不难发现,题目中的操作相当于在循环矩阵中四连通移动。
记 $n=(p-1)/d,m=d$ ,则要求的是 $n\times m$ 四连通循环矩阵的哈密顿环。
由于 $nm=p-1$ 是个偶数,$n,m$ 必有一个为偶数。先横走一趟,来回绕即可构造方案。
# $\color{green}\bf\Delta$ ARC 120
## 赛时
> 45min 通过 ABCD
A 题观察一下性质,讨论掉最大值就能快速算了。题出得不错。
B 题显然是 $i+j$ 相同的区域恰好被经过一次,且顺序也是定好的,故这个区域是同色的,之后就简单了。
C 题将 $A_i,B_i$ 加上 $i$ 就转化为了相邻交换构造映射最小步骤数问题。
D 题有点意思,先考虑 $A$ 只有 $0,1$ ,且 $0,1$ 个数相同的特殊情况。
此时 $0,1$ 内部匹配无贡献, $0,1$ 之间的匹配才有贡献。
如下策略可以使得所有匹配都在 $0,1$ 之间 : 维护一个栈,从前往后扫描,加入 $A_i$ 时,若栈顶与 $A_i$ 相同,则将 $i$ 入栈并输出左括号,若不同,则弹栈并输出右括号。
接下来考虑原问题。
策略 :保证匹配在前 $n$ 小与前 $n$ 大的 $A$之间( $A$ 若有相同则按照编号比较大小)。
这样,每个 $A$ 的贡献都是与中位数的差值。可以证明任意其他策略都不会更优。
E 题观察了一会,啥也没看出来。
搞了搞 F ,列出一坨组合数之后就不会了……
成绩为 `Rank 138, Performance 2368` ,感觉一般。
上黄啦!
## 赛后
# $\color{blue}\bf\Delta$ ARC 121
## 赛前
好久没打 vp 了,来一场爽一爽~
## 赛时
> 通过 ABCE
A 先求出最远点对(疆域四至),然后讨论其余点对“有一个是最远点对中的点”“都不是最远点对中的点”即可。
B 若三种颜色出现次数均为偶数,则答案为 $0$ 。否则有两种颜色为奇数,两种方案 : “两个奇数色各找一个匹配”“两个奇数色各找一个,分别找两个两个偶数色匹配”,不难排序后线性扫描。
C 猜个结论,尽量让交换减少逆序对,若无法减少,则尽量不破坏下一轮能操作的逆序对。
经过三个细节题的毒打,此时已经 50min 了。
D 看了很久不会,于是开 E。
E 考虑容斥,钦定 $k$ 个匹配违反规则,然后树上背包即可。
F 似乎并不难,但时间不多了,遂弃。
插入原场面,成绩为 `Rank 66, Performance 2767` ,感觉还行。
## 赛后
# $\color{green}\bf\Delta$ ARC 122
## 赛前
千呼万唤始出来……话说 AGC 啥时候有啊?
## 赛时
> 通过 ABCDE
A 随便考虑一下贡献系数。
B 显然 $x$ 选中位数除以二。
C 经典的斐波那契拆分。
D 考虑按位贪心,若最高位为 $0,1$ 的数的数目均为偶数,则划分为两个子问题。否则找两堆数之间的最优匹配作为答案。
E 先用 Prho 分解,问题转化为有若干个二进制数,按合适的顺序排列,使得前缀 or 严格单调增加。
猜个结论,每次贪心地选择使得 or 的位数增加最少的数。
成绩为 `Rank 20, Performance 3130` ,感觉不错。
## 赛后
这一场的难度断点比较靠前,便宜我了。
# $\color{green}\bf\Delta$ AGC 054
人生第一场 AGC !
- [AGC 054](https://www.luogu.com.cn/blog/command-block/agc-054-post)
成绩为 `Rank 439, Performance 1872` ,感觉拉跨。还要多锻炼才行啊。
# $\color{blue}\bf\Delta$ ARC 106 $\red\bigstar$
## 赛前
刚睡醒,揉眼睛…… 大吼 :开vp!
## 赛时
A 枚举憨憨题,没看清题目白给 15min+2x5min
B 随便搜一下,判两类和是否相等就好。反复确认了题面,确实是这样。一遍过了。
C 是个构造题,挺平凡的,但是因为没看清题目等种种原因 WA 了很多发。
这时净时间已经过去 35min ,罚时 6 发,心态有点崩。缓了口气继续打。
D 用二项式拆开之后是平凡的。
E 能抽象成二分图匹配。考虑二分答案并用 Hall 定理判定。然而算错复杂度踌躇了好一会才开始写。
最后 3min 还在调,几乎放弃希望了。突然过了样例,一看时间还有 20s,想要交题发现网没了……
把网修好后一交,过了,就算我压哨绝杀吧。
插入原场面,成绩为 `Rank 80, Performance 2593` ,感觉还行。
## 赛后
- [[图论记录]ARC106E Medals](https://www.luogu.com.cn/blog/command-block/post-ji-lu-arc106-medals)
- [[数学记录]ARC106F Figures](https://www.luogu.com.cn/blog/command-block/post-ji-lu-arc106-medals)
- **总结**
这场比赛的题目较为套路,没有什么思维量,然而我却暴露出很多问题。
第一个是心态不够稳定,纯粹只是害怕,讨厌当下的境遇,又畏惧未来的麻烦。心态放松一点,发挥会平稳很多。
第二个是思考的方向不对,我总结了以下三个原则 :
- 思路严格化。对于每一个做法,都要从复杂度,信息利用率等等角度作基本的思考,不能只是根据感觉草草判断。
迷雾中的一线光明是诱人的,大光中的一缝暗影是令人疑惧的,然而它们都只是本来的大小。
- 要把时间花在主要矛盾上。对于那些希望不大的方向,判断出阻力之后,尽早试着转向。换了好几个方向都思考不出来,也是正常的。
# $\color{blue}\bf\Delta$ AGC 028
## 赛前
差不多两个月没打 vp 了(国赛附近几场没有记录)……下午就是集训队互测,来一场试试。
## 赛时
A 题 lcm 和 gcd 搞搞就没了,因为边界问题 WA 了一发。
B 题,发现贡献都是求和,没有乘积,于是可以分别考虑每两个位置之间的贡献。发现是一堆阶乘求和,推一推变成上指标求和。
此时过去 36min ,看来反应变慢了……后面的题想了 20min 都不会,睡大觉。
插入原场面,成绩为 `Rank 142, Performance 2358` ,感觉一般。
## 赛后