摘要: 传送门 这道题虽然很基础但是也不是很好想…… 我们一开始会想,用dp[i]表示前i分钟最大休息时间,之后你就完全不知道怎么转移了。 阻碍你转移的关键问题在于,你不知道后面会发生什么,但是如果从后面倒着DP的话就可以了。因为这样的话,你后面的过程相当于是已知的。我们只要在记录一下以这个点为开始的工作有 阅读全文
posted @ 2018-10-26 23:53 CaptainLi 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 传送门 这道题要求我们在差最小的情况下反转次数最少。我们用dp[i][j]表示选取前i个股票,差值为j的最小反转。因为差最小是优先条件,所以我们完全可以找到最接近某一个值的点,取其最小反转次数。 那么dp[i][j] = min(dp[i-1][j+a[i]],dp[i-1][j-a[i]]+1), 阅读全文
posted @ 2018-10-26 23:40 CaptainLi 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 传送门 这道题的暴力非常容易……直接用dp[i]表示跳到i时最少踩的石子数,那么直接枚举跳跃范围转移即可。 但是这样数组开不下。我们得考虑把路径压缩一下。 我们假设选择一次跳跃距离为p,一次为p+1.这样两者必然互质,那么其中一个数的倍数必然遍历另一个的完全剩余系,所以大于p*(p+1)的数是全部都 阅读全文
posted @ 2018-10-26 23:28 CaptainLi 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目简单描述:找到给定矩形中,最大的,只有对角线为1的正方形。既然又是从矩形找正方形,于是又想故技重施使用悬线法,预处理每个值为1的点到周围最多能拓展几个值为0的点。不过之后发现这样做还是很暴力,每次只能从左上(右上)转移,想着当时暴力判断能否转移。 但是其实没必要这么做,而且这样复杂度也比 阅读全文
posted @ 2018-10-26 23:20 CaptainLi 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 传送门 这道题数据范围很小,所以一开始我采用极暴力手段,直接枚举所有正方形,二维前缀和暴力判断即可。后来发现可以二分,也可以从大到小,其实没什么优化。 之后想到以前做DP的时候的悬线法,就故技重施用O(n^2)的做法过了此题。 但是其实正解非常简单,用dp[i][j]表示以(i,j)为左下角的最大的 阅读全文
posted @ 2018-10-26 23:12 CaptainLi 阅读(414) 评论(0) 推荐(0) 编辑