CSP-S模拟赛7 总结

CSP-S模拟赛7 总结

其实赛时打的海星,就是 T2 反了个小唐错 \(-50pts\),T4打假 \(-20pts\),这种我感觉没啥好办法避免,菜就多练吧。

T1 Lesson5!\(60pts\)

赛时

给了 DAG 那一眼拓扑啊!然后就拿到了全世界都有的 \(n^2\)

还是不得不感叹一下实力确实有在上升,放一年前这个做法对于我应该算相当巧妙了。

正解

考虑预处理出以 \(u\) 为起点的最长路 \(ds_u\) 和以 \(u\) 为终点的最长路 \(dt_u\)

当现在遍历到 \(i\) 时我们让拓扑序小于 \(i\) 的集合称为 \(A\),与之相对的称为 \(B\)

然后,废话地,最长路只有这几种情况:

\[A \to A/B \to B/A \to B\newline \text{即:}dt_u(u\in A)/dt_v(v\in B)/dt_u+1+ds_v(u\to v) \]

我们按拓扑序枚举,使最开始所有元素都在 \(B\) 中,然后动态维护即可。

T2 贝尔数(\(0pts\)

赛时

这道找不到原,给个大意:求 \(Bell(N) \bmod 95041567\)

其中:

\[Bell_{n+1}=\sum_{k=0}^n C_n^k*Bell_{k} \]

\[Bell_{n+p}=Bell_{n}+Bell_{n+1}(mod \,p) \]

就按给的第一个公式 \(n^2\) 求,然后很傻逼的对合数取了个逆元。

这里节选我代码中的一句话:

盲猜有人会被模数坑:\(95041567=31\times 37\times 41\times 43\times 47\),看到这个就不想想正解了

😅

正解

用中国剩余定理合并答案,然后先处理出前 \(47\) 个贝尔数再用矩阵优化第二个式子即可。

T3 穿越广场(\(0pts\)

赛时

跳了。

这个题除了一个人差点 A 了基本都是 \(0\)

正解

题面是求 \(N\)\(\text D\)\(M\)\(\text R\) 组成的字符串包含两个给定串的方案数(模 \(10^9+7\))。

AC 自动机加 DP 即可,设 \(f_{i,j,k,l}\) 为 DP 到第 \(i\) 位,填了 \(j\)\(\text R\),在自动机中走到第 \(k\) 个节点,结束状态为 \(l\) 的方案数。

T4 欢乐豆(\(6pts\)

赛时

暴力(\(20pts\))+性质(\(6pts\)

然鹅暴力挂了。😭

正解

给有向有权完全图,初始时 \(u\to v\) 权为 \(a_u\),然后修改 \(m\) 条边权,最后求所有点对的最短路之和。

大分讨,注意到如果无修改那么 \(u\to v\) 的最短路长为 \(a_u\),然后就把改过的边单独建出来在上面跑 dij,用线段树优化松弛,然后有一坨很鹅心的细节,以及:

思路是显然的,实现是非人的,卡常是狗操的。

posted @ 2025-05-06 17:51  LEWISAK  阅读(48)  评论(0)    收藏  举报