云斗 YDR Special# 004 S 模拟赛

拜谢大水赛。玩爽了。

挂完了,被人类智慧欺骗了 /ll,而且这个大样例强度真的【】


[YDR Special# 004] YDSP 2025 · 云斗 CSP-S 二轮(复赛)全真模拟

链接:link
题解:纸质版

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

A B C D
\(\color{#F39C11} 橙\) \(\color{#52C41A} 绿\) \(\color{#52C41A} 绿\) \(\color{#BFBFBF} ?\)
*1000 *1600 *1900 *?

估分:100 + 100 + 100 + 40 = 340
得分:100 + 75 + 34 + 40 = 249
Rank:25/342


场祭

读题。A 这么签,看来真的是 S 模拟赛了 /qiang

直接去开 B 了,思考 20min 无果,于是先把 A 写掉了。然后继续回来看 B,发现似乎能用 LIS 的那个 dp 来做,但是这样就无法保证回文了,于是想到可以把必须相等的地方放到一块去 dp,想到这里就容易了,LIS 的那个 dp 改改就是了,无非就是需要考虑一下必须相同的两个元素是改一个还是改两个。

关于严格递增,直接 \(a_i \gets a_i-i\) 变成单调不减就可以了。

然后开 C,发现题意可以转化成把一棵树分成几个独立集,让它们大小的前缀和数组总和最小,考虑一个在 \(t\) 时刻被选择的数 \(a_i\) 会产生 \(t \times a_i\) 的贡献,于是就可以按照时刻来 dp 了。容易注意到有一个显然的方案就是黑白染色,不过不一定是最优的,但是继续手玩发现好像并不能构造出最优的时候 \(t\) 很大的情况,根据人类直觉这也是很对的,所以直接令 \(f_{u,i,j}\) 为子树 \(u\),当前是时刻 \(i\),且 \(u\) 在时刻 \(j\) 被删掉的最小代价,然后 \(i,j \in [1,5]\)……

……写写写发现怎么大样例都过了??

看来还是要相信人类直觉的。

不过保险起见,还是把 \(i,j\) 开到了 \(8\),这样稳一点。

啊?我怎么 2h 过掉了 3 个题?这还是 S 模拟赛吗??

开 D,去想正解,似乎是一个 tarjan 状物,但是不会写,打暴力吧,好像给了不少特殊性质的呢。一开始想的 \(O(S^2)\) 暴力是枚举每个 x,跑一遍 tarjan 跑出来所有 x 到 e 的割点,但是发现异常难写,还有不少特殊情况。

然后发现根本不用啊(,直接 \(O(S)\) 枚举每个 o 并当作 x,然后从所有 e 出发 \(O(S)\) 跑个多源 bfs 不就行了!写写写,过样例了。

然后去打 \(n=1\) 的特殊性质,对着 \(O(S^2)\) 的做法拍出来一坨 corner case 之后应该是能过掉了。

不过 \(n=2\) 的 corner case 更多,最后没打出来。


补题

怎么全挂了呜呜呜 /dk

补 C,原来我假完了,题解中证了上界为 \(B = \log n + 1\),呜呜我为什么就不再开大点……/kel

然后我赛时实现的是 \(O(nB^2)\) 的 dp,但实际上当前时刻根本不需要维护,只维护 \(u\) 的颜色就可以了,不过这样还是 \(O(nB^2)\) 的转移。不过考虑维护 \(f_{i,*}\) 最大值和次大值就可以做到 \(O(nB)\) 了,结合上面的结论也就是 \(O(n \log n)\),甚至空间只有 \(O(n)\),完全可过吧……题解怎么还给了个 \(O(n)\) 的不依赖上界的做法。

欸等会……我赛时这写了个啥??

for(int i=head[u],v=to[i];i;i=nxt[i],v=to[i]) // for i...
{
    dfs(v);
    rep(i,0,B-1) rep(j,0,i) // for i...
    {
        tmp=1e18;
        rep(k,0,i) k^j && f[v][i][k]<tmp && (tmp=f[v][i][k]);//,k<=i-1 && f[v][i-1][k]<tmp && (tmp=f[v][i-1][k]);
        f[u][i][j]+=tmp;
    }
}

不是怎么 \(i\) 用了两遍还能过所有大样例甚至有 34pts??下次写链式前向星必须把 i 换成随机字符串了 /ll,然后还要再仔细去看看 warning。

气死 /ll

B 怎么还要线段树维护,所以我做法挂哪了呀qwq

D 要圆方树,不补了。


天依宝宝可爱!

posted @ 2025-10-22 12:07  little__bug  阅读(35)  评论(5)    收藏  举报