bzoj 1563 [NOI2009]诗人小G 四边形不等式 决策单调dp
2016-11-30 19:45
393 查看
正常转移f[i]=max(f[i′]+(L−(sum[i]−sum[i′]+i−i′−1))p)
这个东西好像满足四边形不等式。因此决策单调。
设g[i]表示点i的决策区间的左端点。
cal(i,j)表示用i更新j的答案。
维护一个g[i]单调递增的队列,每次把决策区间在当前点之前的队首扔掉。然后用队首更新当前的f。
把满足cal(x,g[x])>=cal(i,g[x])的队尾扔掉。
然后用当前的队尾二分出g[i],把i加入队列。
注意double精度不够。。。
这个东西好像满足四边形不等式。因此决策单调。
设g[i]表示点i的决策区间的左端点。
cal(i,j)表示用i更新j的答案。
维护一个g[i]单调递增的队列,每次把决策区间在当前点之前的队首扔掉。然后用队首更新当前的f。
把满足cal(x,g[x])>=cal(i,g[x])的队尾扔掉。
然后用当前的队尾二分出g[i],把i加入队列。
注意double精度不够。。。
#include <bits/stdc++.h> using namespace std; #define ld long double #define N 110000 int T,n,l,p; int sum ,q ,g ; ld pw[N*40],f ; char s[110]; ld spow(int x) { ld ret=1; for(int i=1;i<=p;i++)ret*=x; return ret; } ld cal(int x,int y) {return f[x]+pw[abs(l-(sum[y]-sum[x]+y-x-1))];} int get(int x,int y) { int l=x+1,r=n; while(l<=r) { int mid=(l+r)>>1; if(cal(x,mid)<cal(y,mid))r=mid-1; else l=mid+1; } return l; } int main() { //freopen("tt.in","r",stdin); for(scanf("%d",&T);T--;) { scanf("%d%d%d",&n,&l,&p); for(int i=1;i<=n;i++) { scanf("%s",s+1); sum[i]=sum[i-1]+strlen(s+1); } for(int i=0;i<=sum +n||i<=l;i++) pw[i]=spow(i); int h=1,r=1;f[0]=0;q[h]=0;g[0]=1; for(int i=1;i<=n;i++) { while(r-h>=1&&g[q[h+1]]<=i)h++; f[i]=cal(q[h],i); while(r>=h&&g[q[r]]>i&&cal(q[r],g[q[r]])>=cal(i,g[q[r]]))r--; if(r>=h)g[i]=get(i,q[r]); else g[i]=i+1; if(g[i]<=n)q[++r]=i; } if(f >1e18)puts("Too hard to arrange"); else printf("%lld\n",(long long)(f +0.5)); puts("--------------------"); } return 0; }
相关文章推荐
- [BZOJ1563][NOI2009]诗人小G(决策单调性优化DP)
- [BZOJ1563][NOI2009]诗人小G(dp+决策单调性)
- 【BZOJ1563】【NOI2009】诗人小G(dp+决策单调性)
- bzoj1563: [NOI2009]诗人小G【决策单调性优化dp】
- [bzoj1563][NOI2009]诗人小G(决策单调性优化)
- [BZOJ 1563][NOI 2009]诗人小G(四边形优化DP)
- BZOJ_1563_[NOI2009]诗人小G_决策单调性
- BZOJ 1563: [NOI2009]诗人小G 决策单调性DP
- [NOI2009]诗人小G(决策单调性优化dp)
- [决策单调性 分治||单调栈 DP] BZOJ 2739 最远点
- BZOJ 1563 诗人小G(四边形优化)
- 不失一般性和快捷性地判定决策单调(洛谷P1912 [NOI2009]诗人小G)(动态规划,决策单调性,单调队列)
- 【BZOJ 1563】 (四边形优化、决策单调性)
- BZOJ1563/洛谷P1912 诗人小G 【四边形不等式优化dp】
- bzoj1563 [NOI2009]诗人小G
- BZOJ 1563 NOI2009 诗人小G 四边形不等式
- BZOJ 2216: [Poi2011]Lightning Conductor 决策单调性DP
- 【BZOJ 1563】 [NOI2009]诗人小G
- 决策单调性Ⅰ:四边形不等式(bzoj 1563: [NOI2009]诗人小G)
- 【bzoj1563】 [NOI2009]诗人小G