ZR 2025 十一集训 Day 8

今年打的 NOIP 模拟赛中第一次简单场(确信


25十一集训day3

链接:link
题解:题目内

时间:4.5h (2025.10.03 07:20~11:50)
题目数:4
难度:

A B C D
\(\color{#F39C11} 橙\) \(\color{#FFC116} 黄\) \(\color{#BFBFBF} ?\) \(\color{#3498DB} 蓝\)
*1000 *1500 *? *2200

估分:100 + 60 + 20 + 100 = 280
得分:100 + 100 + 20 + 100 = 320
Rank:3/13


场祭

读题。没读完。怎么放这么签的 A,切了。

读题。

啊?D 是原题?就是 NOI2021 轻重边一模一样啊,真的一模一样!哦我草这个模拟赛是 20 年的题,然后出现 21 年的原题了,ZR 还是太强了。

开 B,嗯直接状压,然后看看如何把转移压到 \(O(1)\),发现不会,只会 \(O(n)\) 枚举下一个能放到连通块里的点,预处理每个点集的所有入边和出边,然后能放到连通块 \(S\) 里的点集就是 \(in(S) \cap out(S) - S\),于是就 \(O(n)\) 转移(跑不满)了。

然后确定初始状态,发现一个连通块至少含有一个三点环,所以初始状态就是所有三点环。

dfs 常数太大,直接枚举,测一测样例发现 \(T=10 , n=24\) 跑了 7s+,那加个循环展开呢?少跑了 1s 但是离 2s 差得远,不管了。

把 D 写了,但是有点长,用了 1h。

开 C,数数题会不了一点,打了 20pts 暴力走人了。

还剩 1h 没事干了提前结束了吧。


补题

?我 B 怎么过了,甚至就跑了 1773ms,明明也是造满的点呀,这么可怕 /jk

循环展开还是太厉害了 /bx

不过大样例在 OJ 上跑了 2637ms,那看来是做法太神必导致没有被卡掉,这就是乱搞的好处吗!

B 还是看看正解吧。既然找连通块不好做,那就找不连通块,可以发现若 \(S\) 是连通块,那么对于 \(T = \bigcap _{u \in S} out(u)\) 的任意非空子集 \(T' \subseteq T\)\(T' \cup S\) 一定是不连通块,剩下的没被更新的就一定是连通块。注意到每个不连通块恰好被更新一次,所以复杂度是均摊 \(O(2^n)\) 的。

C 数数题暂时不补,不过后面把数数专题过掉之后可能会回来补。


天依宝宝可爱!

posted @ 2025-10-08 12:01  little__bug  阅读(15)  评论(0)    收藏  举报