用户工具

站点工具


2020-2021:teams:famerwzyyuki:week_2_2020_5_11-2020_5_17

这是本文档旧的修订版!


2020/5/4-2020/5/10

团队训练

队伍知识点

吕双羽

专题

比赛

吴湛宇

陶虹宇

本周只打了例行的ACM模拟赛[手动捂脸],下次一定

本周推荐

吕双羽

Codeforces Round 642 (Div. 3) F:https://codeforces.com/problemset/problem/1353/F

题意:单元格(1,1)中,想进入单元格(n,m)。只能向下(从单元格(i,j)移动到单元格(i+1,j))或向右(从单元格(i,j)移动到单元格(i,j+1))。还有一个附加限制:如果当前单元格的高度为x,则只能移动到高度为x+1的单元格。在第一次移动之前,您可以执行多个操作。在一次操作中,可以将任何单元格的高度减少一个。找到从单元格(1,1)到单元格(n,m)的至少一条合适路径所需执行的最少操作数。答案一定存在。

思路:当(1,1)高度固定时,由于只能向右和向下,从(1,1)到任意(i,j)的距离是唯一的,因此h[i][j]也是确定的,所以使用dp求解。dp[i][j]=min(dp[i-1][j]+dp[i][j-1])+(a[i][j]-a[1][1]-i-j+2)但是如果我们遍历所有可能的高度,我们的解显然会得到超过时间限制的结论。现在我们可以注意到一个重要的事实:在最佳答案中,某些单元格的高度保持不变。因此枚举这些可能的高度即可。时间复杂度O(n^4)

2020-2021/teams/famerwzyyuki/week_2_2020_5_11-2020_5_17.1589633260.txt.gz · 最后更改: 2020/05/16 20:47 由 famerthy