摘要: 二分答案$x$表示最大的一段的和。 设$f[i]$表示前$i$个最多分几段,满足最大的一段不超过$x$,若$f[n]\geq k$,则可行, 则$f[i]=\max(f[j])+1,sum[i]-sum[j]\leq x$。 用Treap优化DP,$O(n\log^2n)$。 同理再次二分得到最小的 阅读全文
posted @ 2015-02-01 20:42 Claris 阅读(722) 评论(0) 推荐(0) 编辑
摘要: 从左往右维护两个指针l,r表示离i最近的k个点的区间,预处理出每个点出发的后继,然后倍增。#includetypedef long long ll;const int N=1000010,BUF=20000000,OUT=8000000;int n,k,i,l=1,r,f[N],g[N],t[N],... 阅读全文
posted @ 2015-02-01 10:23 Claris 阅读(249) 评论(0) 推荐(0) 编辑