拓扑 AC 2025 线上 NOIP 联测 #4

A 怎么挂没了挂的一点不剩 /ll

B 怎么数据范围与题面不符 /jk


[2025线上NOIP联测第三阶段] 模拟赛 4

链接:link
题解:link

时间: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)\)

天依宝宝可爱!

posted @ 2025-11-19 12:11  little__bug  阅读(5)  评论(0)    收藏  举报