
斜率优化
luckyone2014
想思路是苦涩艰辛的,但是打代码是愉快的。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 2829 Lawrence 斜率优化
题意: n长度的轨道,截m处。 每段的价值是 这段里 每个数两两相乘的和。问不同的截法最大的价值和。 做法: i是轨道长度,j是炸药的量 cost[i]是前i个数字 两两相乘的和。 dp[i][j]=min{dp[k][j-1]+cost[i]-cost[k]-sum[k]*(sum[i]-sum[k])} 可以推倒出来: y(i)=dp[i][]-cost[i]+sum[i]^2 x(i)=sum[i] 斜率是 sum[i]原创 2015-09-01 21:34:05 · 732 阅读 · 0 评论 -
hdu 3480 Division 斜率优化
题意:把n个数字 分成m个集合。 每个集合的价值是 这个集合中 (max-min)^2。 输出最少的价值 做法:如果想价值最小,不妨先排个序。这样 最后的答案肯定在排序后的数组中 是连续的。 可以得到数组 dp[i][c]=min{dp[j][c-1]+(num[i]-num[j+1])^2 直接dp 复杂度 N*N*M 瞬间爆炸。 可以斜率优化来写; 推导出 y(j)=dp[j][c-1]+num[j+1]*num[j+1] x(j)=num[j+1] 当 k<j<i [y(j)-y原创 2015-09-03 09:02:43 · 713 阅读 · 0 评论