原题模拟赛 #3

没有大样例真的可能不挂很多分吗。


?

链接:link / A B C D
题解:洛谷题解区

时间:4h (2025.11.21 07:40~11:40)
题目数:4
难度:

A B C D
\(\color{#3498DB} 蓝\) \(\color{#FFC116} 黄\) \(\color{#3498DB} 蓝\) \(\color{#52C41A} 绿\)
*2200 *1300 *2300 *1700

估分:39 + 100 + 15 + 26 = 180
得分:39 + 39 + 15 + 36 = 119
Rank:4/6


场祭

读题。

B 签,直接平衡树 / 权值线段树维护即可,因为线段树写的比较熟练所以写线段树了。

A 怎么这么困难!思考了 20min+ 仍然毫无头猪,打暴力和 \(r_i = 1\) 的特殊性质走人了,顺便拼上了个循环展开不过应该不会起什么作用。

开 C,这不直接树形 dp?哦不行,转移太复杂了。然后发现除了 4pts 的暴力似乎什么都不会了 ww

思考了一会儿,发现 \(l_i\) 全部相等可以直接贪心地把整棵树划分成若干个大小为 \(l_i\) 的连通块,剩下的是真不会了。

开 D,这个倒是会不少部分分。暴力考虑预处理 \(f_{i,S}\) 表示关键点颜色集合为 \(S\) 时从 \((i,0)\) 出发到达的终点,于是就可以 \(O(nm 2^m) - O(nq 2^m)\) 做了。\(a_i + 1 = b_i\) 直接判断 \(a_i,b_i\) 这两行是否有关键点就行。\(x_i\) 递增手玩一下就能发现结论,答案为没有关键点的行数,不过若 \(b_i , b_i-1\) 这两行都有关键点则答案还需要 \(+1\)

能拿到的分都拿到了,赢!看来这个策略还是很合理的喵。

给 C 写了个随机乱搞,不期望得分。


补题

原题:

A:NOISG 2025 Finals 洛谷 P12016
B:NOISG 2025 Prelim 洛谷 P12194
C:NOISG 2025 Finals 洛谷 P12017
D:NOISG 2025 Finals 洛谷 P12018

B 没大样例果然还是挂完了 /ll,死因是线段树的时候,偷懒在查询的时候直接删除了,但是后来没有 pushdown……

不过看题解发现有非常简单的 STL 做法,这就是 ds 学多了的坏处吗。

补 A,好神奇的思路,先是注意到每个兔子的相对位置不会变化(无论怎么做都不会影响一只兔子对另一只兔子的操作),然后注意到把整个坐标系旋转 \(45 \degree\) 后,每个兔子向某个象限方向(假设以这个兔子为原点)移动的步数,就是和这个象限相对的象限中的点数,于是就是二位数点板子了。

这真的不止绿吧……

然后经典调不出来扔掉了()

补 C,注意(不)到 \(l_i\) 对于边的方向的限制,所以直接树上背包是可以的。转移简单分讨。参照 这篇题解我的题解

补 D,是简单题,画个图出来什么结论都有了啊。注意到一个终点对应的起点一定是一段连续的区间,考虑从左往右递推,只关心每个特殊格子对应的起点区间,就可以证明。然后从左往右递推一下求出来每个终点的覆盖范围,查询直接倍增就做完了。


天依宝宝可爱!

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