? #4
不给大样例还是太坏了。
?
链接:link
题解:纸质版
时间:4h (2025.10.30 07:30~11:30)
题目数:4
难度:
| A | B | C | D |
|---|---|---|---|
| \(\color{#F39C11} 橙\) | \(\color{#52C41A} 绿\) | \(\color{#52C41A} 绿\) | \(\color{#BFBFBF} ?\) |
| *1000 | *1700 | *1800 | *? |
估分:100 + 50 + [40,60] + 20 = [210,230]
得分:100 + 30 + 60 + 0 = 190
Rank:3/6
场祭
读题。
怎么不给大样例,这么坏。
A 签。
B 考虑拆贡献但是发现很难处理,一坨特判,复杂度也不好保证,于是打了 30pts 的暴力跑路了。
开 C,发现可以枚举 \(b_i\),然后对于不同的 \(a_j\) 统计答案,但是这样就要枚举 \(\ge a_i\) 的所有 \(a_j\) 可能值,考虑推式子,推出来的时候手玩了一下样例发现漏情况了,加上之后就推不动了,所以果断打了个 \(O(nV)\) 的暴力走人了,不过会有一点常数,不知道 \(V \le 1000\) 的部分分能不能卡过去。
在做 C 的时候忽然发现了 B 的一个 \(c_i \le 20\) 的特殊性质做法,枚举每个 \(c\) 然后单步容斥一下就可以算了。
不过还是先开 D,是区间 dp 吗?好像不怎么好转移,于是只打了暴力。
回去把 B 的特殊性质写了。
还剩 0.5h,因为没有大样例,所以拍了拍 BC,只拍 BC 是因为 A 暴力不是很好写而且不怎么可能挂,然后 D 本来写的就是暴力还拍个毛线(
没拍出任何错误,最后 10min+ 摆了。
……赛后忽然注意到 D 的暴力挂掉了,因为忘判单调性了!不给大样例还是太坏了。
补题
B 挂了 20pts 是因为数据根本不符合数据范围啊。。经过 assert 发现所有测试点都不满足 \(c_i \le 20\),糖。
补 B,考虑扩展 \(c \le 20\) 的那个做法,然后发现非常容易,记一个 \(f_{u,v}\) 表示节点 \(u\) 的子树中,删掉所有和 \(u\) 颜色相同的点之后,包含 \(u\) 的儿子 \(v\) 的连通块大小,发现记录每个颜色的最近祖先 就可以在子树内同色节点处更新子树的根了,做完了。或者再方便一点,直接记 \(f_u\) 表示删掉 \(fa_u\) 后的结果,也是可以的。
但是这样挂了一个点不知道为啥。
补 C,注意到上面(赛时做法)那个东西,可以被刻画成区间 \(\times 2\) 和区间求和,直接上线段树就做完了。具体地,还是从小到大枚举 \(b_i\),并对每个可能的 \(\max a_j\) 算方案数,考虑维护所有可以被选的 \(a_j\) 的一个有序序列,那么在加入一个 \(b_i\) 对应的 \(a_i\) 之后,\(\ge a_i\) 的所有 \(\max a_j\) 对应的可选元素就会多一个,也就相当于方案数 \(\times 2\)。而对于每个 \(b_i\) 算贡献就是全局求和再乘上一个 \(3^{b_i}\)。那么直接对所有 \(a_i\) 开动态开点权值线段树即可。
天依宝宝可爱!

浙公网安备 33010602011771号