Logo lzx的博客

博客

省选模拟赛总结

2025-07-30 20:25:56 By lzx

2025/07/28

第一场,感觉不太清醒,已经深刻认识到错误。(耳刮子已经打了)

T1

咋是交互题,之前没做过。 花了 10min 看懂了题面,就是要花尽量少的次数得到权值和,然后只需要交一个函数就行。

很快想到了 $2nh$ 次询问,每个点询问 $h$ 次,加起来 /(n-1) 就行。

然后就卡住了,想到 9:50,不会了,开 T2,3。

等到 11:20 回来再看,发现如果每个点访问 $1$,那么根被加了两次,叶子加了一次,剩下的点加了三次,只需要把根找出来,减减加加就行。很快写完,预计 62pts。

又不会了,一直没有很好的消去贡献,但是感觉和正解很接近。

赛后讲题,发现就是如何凑贡献的问题,可以找出前两层的点,然后算出根的权值来,然后加一加就行了。

但是提交上的代码 CE 了,原因是我定义的 solve 函数是 solve(long long,long long),但是应该是 solve(int,int),然后就挂了。

T2

一开始以为是 2-SAT,但是发现并不是,2-SAT 只能做判定和构造解。然后会了最低档的暴力,但是此时脑子已经不清醒了,试图研究特殊性质,但是并没有进展。

赛后讲题,就是从特殊性质入手。然后就是看成一堆区间,答案要么是一堆有交的 $a\lt b$,或者是一个 $a\gt b$ 和包含的他的一堆 $a\lt b$,线段树很好维护。

暴力又挂了,原因是左移右移数错位了。

T3

只会阶乘暴力,想到了 dp,但是并没有很好的设出状态,推出式子。

赛后讲题,发现可以设 $f_{u,i}$,表示说 $u$ 子树内进出了 $i$ 次,转移是容易的。但是优化没听懂,掉线了。

总结

几个问题:

1.在 T1 上花费了过多时间,且因为低级错误 CE,在本地 CE,爆出 undefine 的时候就应该意识到函数写错了,但是我以为是交互库的锅,把函数粘到了 grader 里,实现了自测。赛后看这是很可笑的。

2.在意识到题目可能过难时,我没有很好的稳住心态,脑子成了浆糊,导致 T2,3 应有的部分分没有拿到。

3.dp 太弱,设状态,推式子的能力都不足,应该加强训练。

4.对于简单的部分分实现,出现了掉以轻心的情况,犯了弱智错误。

5.策略出现了失误,比赛节奏被打乱。

6.体力,脑力都出现了掉线的情况。

2025/07/29

感觉状态比前一天好多了。

T1

这个一眼就很数位 dp,然后想,然后发现可以只关心每个数填了多少,感觉状态数不多,发现 $10^{10}$ 只有几万个,然后开写,但是写完发现没有暴力跑得快,$10^6$ 跑了 5s,心态有点崩。冷静算一下,复杂度太高,不太能接受。

一直在想如何优化状态,猜想是不是不关心具体每个数出现了多少次,而是像之前某个题一样只关心出现 $i$ 次的有多少,但是在这种情况下不会处理顶上界的情况。

此时已经九点多了,dp 没有进展,遂打暴力。发现 $r$ 为 $10$ 的若干次幂是容易的,可以爆搜/打表。于是打出了 $10^{18}$ 以内的。然后发现 $10^8$ 以内的可以用分块打表,很快写完。有点不太放心,因为文件大小来到了 95KB。

先去看后面的题。

后面再看,没太有进展。

出成绩,文件过长,表炸了。评测的时候老师的评测机开到 50KB,开到 100KB 重测后没有挂分。

T2

想了一会,只会阶乘暴力。

然后发现要转化成一个排列,之后 dp,但是我不会了,没能想出来暴力 dp。

赛后讲题,发现要注意到先将 $a$ 数组排序,然后注意到最后一个未匹配的 B 类点之前的 A 类点都要匹配,之后的 B 类点都要匹配,基于此可以前后 dp,然后拼起来。和之前讲的某个题是一类套路。

T3

读懂题了,感觉要挖掘一些性质。

研究了一会,发现 DAG 肯定 A 赢,推广一下,后续没有环的一定也不行。

然后就不会了。

赛后讲题,发现还要发现一些性质。

首先删掉只能有限次操作的点。

如果一个点只有一条出边,那么它只能到后面那个点,所以可以合并两个点。

启发式合并一下。

需要惊人的注意力。

总结

好的方面是没有出现前一天的重大失误,比赛节奏策略也逐渐适应。

不好的方面是暴力分依旧没有拿满,回去要摆正好心态,好好练 dp 了。

2025/07/30

状态回来一点了,但是还是有失误。

T1

一看是异或,感觉和前两天 NOIP 模拟赛的 B 很像,因此直接设 $f_{i,j}$ 表示考虑了前 $j$ 位,数字为 $i$ 的代价。写完发现,大样例要跑 5s,回去看看,原来是复杂度算假了。最坏情况下他每次都要更新 $2^m$ 个点,T 飞了。

赶紧看看怎么修,但是到 9:30 没想出来,写了个 $c\le 3$ 跑了。

后面回来再看,没有发现什么好的性质。

赛后讲题,不用记位数,只需要每次暴力访问 $m$ 个可能更新到的点,暴力 bfs 更新,由于每个数最多被更新 $m$ 次,所以复杂度是对的。

没做出来,有点不应该。

T2

2 min 读懂题,暴力模拟就能过第一个 sub。可以倒序考虑每次和哪个位置交换,但是复杂度好像不对,就没写(实际上是可以过 sub2 的)。继续想,没想出来。

讲题,咋是数学题。把开始的 $x$ 看成矩阵,异或就是广义矩阵乘。把每次的乘的矩阵命名为 $A$。因为倒序考虑,所以 $xA^i \bmod i$ 的结果我是知道的,先只考虑 $2^k$,那我就知道了结果的底 $i$ 位。由于 $x$ 的每一位都是原来的一些位的线性组合,所以我们就得到了 $i$ 个方程。但是方程数有点少,考虑多用一点。我们知道了 $\bmod i$ 的余数,我们就知道了 $\bmod$ $i$ 的因数的余数,所以我们就知道了 $\bmod$ $\operatorname{lowbit} i$ 的余数,那我们知道了更多方程,自由的位数就更少了。

T3

3min 读懂题,实际上就是要有一个排列满足第 $i$ 行第 $p_i$ 列为 $1$ 的概率。

首先想到暴力全排列,然后想到,这个东西可以 dp,每次枚举出来每位是 0/1,$f_{i,s}$ 表示前 $i$ 行,选了 $ s$ 中的列,能不能选出来的全是 $1$,转移是容易的。

然后又不会了。

$n\le 7$ 的做法是考虑不枚举,dp 套 dp,然后说有效状态数不多,可以通过。

$n\le 9$ 要用 Hall 定理,没听懂。

总结

好的方面:

暴力拿满了,思考也比较充分,没有出现低级失误,能像一个正常人类一样想题了。

问题:

对于基础的算法应用转化理解不透彻,把简单问题复杂化了,掌握不完全。

2025/07/31

T1

第一眼以为是 2-SAT,然后发现不能处理 $l,r$ 的限制,于是果断放弃(2-SAT 学魔怔了),然后想别的做法,然后想到可以把 $m$ 条限制看成边,一个连通块内确定了一个点就确定了一整个连通块,所以可以枚举编号最小的点,有 25pts。然后就卡住了,想了一会,没有进展,想特殊性质也没想出来,心态有点崩果断弃题。

赛后得知可以用 trie 维护编号最小的点的可行区间,长知识了。

T2

第一眼没读懂题,再读一遍,手模一下样例,懂了。注意到 $n\le 200$ 可以暴力跑出来,然后去想特殊性质。

想了一会,发现 AB 性质就是保证永远不会出现 his,A 性质保证只有一开始会有 his,只需要维护一下开始的 he,两种一起跑一下,有 35pts。

继续特殊性质,注意到 his 很麻烦,可能是解题关键。如果任意时刻都没有超过三个 he,说明只有最开始几个串有 his,所以可以暴力跑出前 $6$ 个,然后和前面一样做。

再看,感觉 D 性质没有什么用。发现只有 hihi...his 和 hihihi...he 是难处理的,但是不太会处理。

赛后讲题,得知可以维护一下每个字符什么时候变,每个间隔什么时候插入即可。

T3

一看就是性质题,但是推了 30min 没推出来,果断放弃。

正解及其 Ad-hoc 要先给他推到一条线上,然后再做类似数位 dp。掉线了。

总结

还是要稳定好心态,要打好暴力分。

要加强对于数据结构的应用,要加强自己的代码能力。

2025/08/01

终于过题了\ll\ll。

T1

先看 T1,一下子会了 $n^2$,有 50pts。然后有点卡住,先去想链,发现可以直接线段树做,那么 $2\times 10^5$j加上特殊性质就有 86pts,时间还早,有充分时间在想一会。

发现问题其实是维护路径信息,那么能不能把询问离线下来,挂到 lca 上一块做。先想了 dsu on tree,发现不太行。又想点分治,可以把询问挂到点分树的 lca 上,然后暴力 dp 一下,就做完了。复杂度 $O(nk^2\log n+qk)$,有点卡常不过问题不大,开了 3s,先看看后面的题,没读懂,先不管了,开写。9:20 写完,大样例挂了,有点慌,一看 dp 式子假了,更慌了。

先上个厕所冷静一下,没事,能修。10:20 写+调完,发现大样例要跑 3.8s,空间要用 400MB 以上,有点危险,关掉 long long,应该没啥问题了。

T2

写完 T1,再重新读一下题,会了 20pts 暴力,先写。写完发现卡住了,想一会到 11:00,没有进展,果断弃题。

讲题掉线了。

T3

没读懂题,再读一遍,没看懂他给了 $f$ 数组,为啥还要给 fa 函数,有点迷。而且一点思路都没有,弃了。

赛后讲题,原来 50 的部分分(fa 函数)是为了能把两个数组都自己用(因为空间卡的很死,不能再开数组),还要借助链式前向星的思想,用 head 和 nxt 实现以下,很巧妙,有点人类智慧。

经验教训

要大胆冲一些自己有把握的分

要通读所有题。

要增强码力,减少调试时间。

20250705模拟赛总结

2025-07-05 16:47:17 By lzx

还算是正常发挥。

T1~3

开场一看,前4题貌似都见过,遂掉以轻心。

先看 T1,试图推 dp 式子,发现不太行,花了 30min,未果。

于是看 T2,发现暂时也不会,发现与最短的长为奇数和偶数的路径长有关,但不会算,遂开 T3,发现 T3 前两天写过,只需要统计一下每个点的答案,然后加一下就行,然后全挂了。

这时心态已经有点崩了。

然后发现没有累加答案,而且没有还原贡献,赶紧改完,过了。

回去看 T1,发现只需要这一天买回来,第二天再卖出去即可,10min 内写完。

再看 T2,发现分层图就搞定了,完事。

T4

发现每行只选一个,考虑容斥。

快速写完,发现假了,因为统计不合法方案时忘了限制每行只选一个了。

然后又想 dp,过了 84。

然后考虑只关心两者之间的差值,遂 100pts。

T5

想写暴力,但是时间太短没写完.

教训经验

要合理安排时间。

要稳住心态。

要加强对于简单模型的转化应用。

lzx Avatar