斜率优化
Self-Discipline
在校大学生
展开
-
HDU 3507
题意:就是要输出N个数字a[N],输出的时候可以连续连续的输出,每连续输出一串,它的费用是 “这串数字和的平方加上一个常数M”。 分析:我们设dp[i]表示输出到i的时候最少的花费,sum[i]表示从a[1]到a[i]的数字和。于是方程就是:dp[i]=dp[j]+M+(sum[i]-sum[j])^2;很显然这个是一个二维的。题目的数字有500000个,不用试了,二维铁定超时了,需要使用斜率优...原创 2019-05-23 20:14:47 · 326 阅读 · 0 评论 -
CodeForces 660F
题意:给定一段数列,现在叫你取其中一段,第一位*1,第二位*2...求最大。 思路:sum[n]=a[1]+a[2]+...a[n],原先的dp[n]=a[1]*1+a[2]*2+a[3]*3+..a[n]*n; 那么现在的max[i]=max:dp[i]-dp[j]-(sum[i]-sum[j])*j; =-sum[i]*j+j*sum[j]-dp[j]+dp[i]可以斜率优化,由于K=s...原创 2019-05-23 20:53:14 · 193 阅读 · 0 评论