拓扑 AC 2025 线上 NOIP 联测 #4
A 怎么挂没了挂的一点不剩 /ll
B 怎么数据范围与题面不符 /jk
[2025线上NOIP联测第三阶段] 模拟赛 4
时间:4h (2025.11.19 07:40~11:40)
题目数:4
难度:
| A | B | C | D |
|---|---|---|---|
| \(\color{#FFC116} 黄\) | \(\color{#3498DB} 蓝\) | \(\color{#BFBFBF} ?\) | \(\color{#BFBFBF} ?\) |
| *1300 | *2100 | *? | *? |
估分:100 + 70 + 70 + 10 = 250
得分:0 + 45 + 70 + 10 = 125
Rank:8/34
场祭
读题。
A 比较签,稍微思考就可以了,第一问二分,第二问贪心,第三问倍增。
开 B,先是注意到期望是假的,可以转化成统计哪些序列中同时存在 \(x,y\) 这两个数,这应该是个比较典的东西?但是我不会啊 w,思考半天还是只会一个 \(O(\frac {nq} w)\) 的空间爆炸的暴力,于是去打暴力了,发现除了正解和 \(n=2\) 的部分分以外,都可以用一个 \(O(\sum a_i^2 + q)\) 的暴力做掉,写写写……
过大样例了?观察一下,这个机构的比赛好像都是只给一个带有特殊性质的大样例。有点糖了吧。
开 C,数据范围有点吓人,发现直接状压有 25pts,两个性质应该都直接贪就好了(?先把状压写掉了,然后去写性质,并尝试对比性质和暴力的输出来判断是否写对了,实测这个方法正确率很高,两个不同的做法挂同一个地方还是比较困难的。
(类似地,分块对比两个块长的输出、树形 / 换根 dp 对比不同根节点的输出也是可以的。
D 给了 10pts 的样例分!然后去写个暴力,过掉了小样例但是没时间测大样例了。
补题
A 全挂了呜呜,发现死因是在做倍增的时候,修改了全局的 \(k\),不是这是怎么过大样例的啊??哦正好答案就是由 \(a_n\) 贡献的是吧,被坑惨了 /ll
B 怎么 RE 内存爆了?经过一番 assert,发现那部分数据并不满足 \(\sum a_i \le 1000\),二分了一下发现满足了 \(4 \times 10^4\) \(\le \sum a_i \le\) \(10^5\),有点逆天了吧。
补 B,是根号分治,怎么最近一直在这些学过但是长时间不用的小 trick 上被创飞 /kel
就是先有一个暴力,预处理出每个数 \(i\) 出现在了哪些序列里,用 vector 存为 \(v_i\),然后询问就把 \(v_x\) 塞到桶里,再数一下 \(v_y\) 中的每个元素是否在桶中出现即可。
然后对于这个根号分治,令 \(v_i\) 大小 \(\ge \sqrt n\) 的为大点,剩下的为小点,询问就分三种情况讨论:
- 大点对大点:注意到最多有 \(\sqrt n\) 个大点,所以可以直接预处理,对于每个大点 \(i\),把它加入桶中,暴力算一下其他大点与 \(i\) 配对的答案即可。因为暴力算答案的复杂度是 \(O(\sum sz(v_i)) = O(n)\) 的,所以总复杂度为 \(O(n \sqrt n)\)。
- 大点对小点:离线下来,分开每个不同大点处理,对于同一个大点可以直接用同一个桶,小点直接暴力。把大点塞桶里的复杂度是 \(O(n)\) 的;因为小点的大小是 \(< \sqrt n\) 的,所以复杂度为 \(O(q \sqrt n)\)。
- 小点对小点:直接暴力,复杂度 \(O(q \sqrt n)\)。
天依宝宝可爱!

浙公网安备 33010602011771号