CSP-S模拟赛5 总结

CSP-S模拟赛5 总结

bobo 给所有题都换了个皮。。。

这场 T1 拉大分,要敢于想正解啊!

T1 十年之约 (\(30pts\)

赛时

荣获全场最低昏。。。

打了个 30 \(O(n\sqrt n)\) 就滚了,想到了两种能过的做法但都不敢打。。。

正解

太简单了讲粗略点、

注意到 \(f\) 到四十几就飞出 \(10^{16}\) 了。

于是考虑预处理出 \(\text{lcm}\) 前缀,查询时小小容斥一下即可。

T2 可爱三小只(\(60pts\)

赛时

把所有部分分都吃干净了,大众操作。

正解

考虑:

  1. 操作顺序可以随便挑
  2. 对于减少一整行,对于列的最优操作无关,因为全都减了就相当于全没减。

于是预处理出减 \(i\) 次行/列的操作,枚举减了几次行/列即可。

T3 蛋蛋塌了(\(50pts\)

赛时

吃了两挡后懒的打线段树,态度堪忧。

正解

拆贡献,显然有:

\[ans=\sum_{i=1}^n\sum^n_{j=i+1}\frac{p_ip_j}{2^{j-i+1}} \]

然后这就是两档的思路了。

考虑用线段树维护即可。

T4 西安行(\(30pts\)

赛时

大众50->小众30

正解

考虑设 \(dp_i\) 表到了 \(i\) 并在这里分隔的答案,有:

\[dp_i=\sum^{i-1}_{j=0}dp_j(i-j)^2 \]

然后拆开后矩阵优化即可。

posted @ 2025-04-06 14:48  LEWISAK  阅读(56)  评论(0)    收藏  举报