bzoj 3437 斜率优化DP
2014-05-08 09:56
204 查看
写题解之前首先要感谢妹子。
比较容易的斜率DP,设sum[i]=Σb[j],sum_[i]=Σb[j]*j,w[i]为第i个建立,前i个的代价。
那么就可以转移了。
比较容易的斜率DP,设sum[i]=Σb[j],sum_[i]=Σb[j]*j,w[i]为第i个建立,前i个的代价。
那么就可以转移了。
/************************************************************** Problem: 3437 User: BLADEVIL Language: C++ Result: Accepted Time:3404 ms Memory:39872 kb ****************************************************************/ //By BLADEVIL #include <cstdio> #define maxn 1000010 #define LL long long using namespace std; LL n; LL a[maxn],sum[maxn],sum_[maxn]; LL que[maxn]; LL w[maxn]; LL get(LL i) { return (w[i]+sum_[i]); } int main() { scanf("%lld",&n); for (LL i=1;i<=n;i++) scanf("%lld",&a[i]); for (LL i=1;i<=n;i++) scanf("%lld",&sum[i]); for (LL i=1;i<=n;i++) sum_[i]=i*sum[i]; for (LL i=1;i<=n;i++) sum[i]+=sum[i-1],sum_[i]+=sum_[i-1]; LL h(1),t(1); for (LL i=1;i<=n;i++) { while ((t-h>0)&&((sum[que[h]]-sum[que[h+1]])*i<=(w[que[h]]+sum_[que[h]]-w[que[h+1]]-sum_[que[h+1]]))) h++; w[i]=w[que[h]]+(sum[i]-sum[que[h]])*i-(sum_[i]-sum_[que[h]])+a[i]; //w[i]=w[que[h]]+sum_[que[h]]-i*sum[que[h]]+i*sum[i]+a[i]-sum_[i]; while ((t>h)&&((get(que[t-1])-get(i))*(sum[que[t-1]]-sum[que[t]])<=(get(que[t-1])-get(que[t]))*(sum[que[t-1]]-sum[i]))) t--; /* while ((t-h>0)&&( (w[que[t-1]]+sum_[que[t-1]]-w[i]-sum_[i])*(sum[que[t-1]]-sum[que[t]])<= (w[que[t-1]]+sum_[que[t-1]]-w[que[t]]-sum_[que[t]])*(sum[que[t-1]]-sum[i])) ) t--; */ que[++t]=i; } printf("%lld\n",w ); return 0; }
相关文章推荐
- bzoj 3437: 小P的牧场(斜率优化DP)
- 【bzoj3437】【小p的牧场】【斜率优化dp】
- 【BZOJ3437】小P的牧场,斜率优化DP
- [BZOJ3437]小P的牧场(斜率优化dp)
- BZOJ 3437 小P的牧场(斜率优化DP)
- [bzoj3437][dp+斜率优化]小P的牧场
- 【bzoj3437】小P的牧场(斜率优化dp)
- BZOJ 3437: 小P的牧场 斜率优化DP
- [BZOJ 3437]小P的牧场:DP斜率优化
- BZOJ3437 小P的牧场 【斜率优化dp】
- BZOJ 3437 : 斜率优化DP
- BZOJ3437 小P的牧场 【斜率优化dp】
- 【动态规划24】bzoj3437小P的牧场(dp+斜率优化)
- 【bzoj3437】小P的牧场 斜率优化dp
- BZOJ 3437: 小P的牧场 斜率优化dp
- BZOJ 3437 小P的牧场 斜率优化DP
- [BZOJ 1597][Usaco2008 Mar]土地购买:DP斜率优化
- bzoj 3675: [Apio2014]序列分割 斜率优化dp
- [BZOJ1492][NOI2007][CDQ分治][斜率优化][DP]货币兑换Cash
- bzoj3672 [ NOI2014 ] -- 树上CDQ分治 + 斜率优化DP