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