20250822 OI 总结

前言

我的方法怎么都那么复杂啊!!!

T1

呃呃呃,我写了个树状数组 + 双指针!!!

思路:肯定要让区间尽可能的大才更优。双指针维护一下即可(前缀和)。

T2

死因:输出错制表符了(没剪枝)

思路:dfs 时剪枝就好了。

T3

\(n \le 1000\) 一看就很 \(dp\)

\(dp[i][j]\) 为到了第 \(j\) 天到了\(i\) 座城市的最小值。

所以:

dp[i][j+1] = min(dp[i][j+1],dp[i][j]);
dp[i+1][j+1] = min(dp[i+1][j+1,dp[i][j]] + d[i+1] * c[j+1] )

T4

暴力分拿到了。

直接 \(n\) 遍 Dijkstra。

正解:

我们可以发现,边权为 w 的边连接的两个联通分量对答案的贡献为 siz[x] * siz[y],所以,可以类似启发式合并的东西来搞一下。

T5

大模拟。

思路:大模拟(注意二月闰年的判断)

posted @ 2025-08-22 19:52  Ruochen_xia  阅读(3)  评论(0)    收藏  举报