摘要: 传送门 解题思路 设dp[i]表示在第i秒发车时前面的人一共等候了多少分钟。 朴素方程就是枚举 \(j=0\to (i-m)\) \(dp[i]=min(dp[i],dp[j]+i\times(cnt[i]-cnt[j])-(a[i]-a[j]))\) 其中 \(cnt[i]\) 为前 i 秒的人数 阅读全文
posted @ 2021-09-11 20:28 尹昱钦 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 传送门 斜率优化 当求dp[i]最小值时,满足一次函数 \(y=kx+b\) 其中 y=dp[j] ,k 与 i 有关,x 与 j 有关,b中包含 dp[i]。 这时问题就可以转化为 在众多点(x,y)中找到一个点使得用斜率为k的直线切这个点时得到的截距b最小。很显然这时dp[i]从这个点转移过来最 阅读全文
posted @ 2021-09-11 17:42 尹昱钦 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 设dp[i][j]表示用前i个数,第一段山脉的高度为j,且j为山峰的方案数。 首先发现,dp[i][j]=dp[i][i-j+1],相当于把每个数取了个相反数,原来的山峰变山谷,山谷变山峰,方案数不变。 然后状态转移: j和j-1不相邻时:dp[i][j]=dp[i][j-1] 因 阅读全文
posted @ 2021-09-11 11:43 尹昱钦 阅读(43) 评论(0) 推荐(0) 编辑