动态规划
Chenhongkan
这个作者很懒,什么都没留下…
展开
-
USACO MAR 2008 【土地并购】
这是一道斜率优化的题目 O(n2)O(n^2) 的算法很容易,dp[i]=min(dp[j]+B[i].y∗A[i].x)dp[i]=min(dp[j]+B[i].y*A[i].x) 当然,先按X排个序,扫一遍,除掉不需要的,使得B中X递减,Y递增。 接下来考虑dp[i]究竟从哪里转移而来。 不妨设j<k<i j<k<i 如果dp[j]+B[i].y∗B[j].x>dp[k]+B[i].y原创 2016-09-12 14:42:25 · 363 阅读 · 0 评论 -
USACO2013FebruaryGold partition
题目大意。有n*n的牧场,每块上有几头牛,然后可以横着竖着放最多k个栅栏,使得最后每大块中的和的最大值最小 2<=n<=15 1<=k<=2*n-2 sample : 3 2 1 1 2 1 1 2 2 2 4 output 4 (row 2 and 3 line 2ans 3) solution: 我们可以先枚举竖着断在哪里,这里的复杂度为O(2n−1)O(2^{n-1})原创 2016-09-17 09:59:42 · 226 阅读 · 0 评论 -
codeforce contest 713 #371 Div1 C
题意:有n个元素,你每次操作可以将其中一个元素加一或减一。 问最少需要多少次使得序列严格递增。 n<=3000sampleinput: 7 2 1 5 11 5 9 11 output 9 input 5 5 4 3 2 1 output 15 题解:我们假设他不是严格递增的,那么我们就可以dp,dp[i][j]表示到第i个,最后一个数为第j大时的最小花费。 O(n原创 2016-09-21 21:52:51 · 328 阅读 · 0 评论