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
大模拟。
思路:大模拟(注意二月闰年的判断)