BZOJ4518 [Sdoi2016]征途
来源:互联网 发布:淘宝宝贝设置几天发货 编辑:程序博客网 时间:2024/04/30 09:44
裸斜率优化
#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<iomanip>#include<cstring>#include<cmath>#include<ctime>#include<vector>#include<stack>#include<queue>#include<set>#include<bitset>#include<map>using namespace std;#define MAXN 3010#define MAXM 10010#define INF 1000000000#define MOD 1000000007#define ll long long#define eps 1e-8ll f[MAXN][MAXN];ll a[MAXN];ll s[MAXN];int q[MAXN][MAXN];int hd[MAXN],tl[MAXN];int n,m;double xl(int x,int y,int z){z--;return 1.0*(f[x][z]-f[y][z]+s[x]*s[x]-s[y]*s[y])/(s[x]-s[y]);}int main(){int i,j,k;scanf("%d%d",&n,&m);for(i=1;i<=n;i++){scanf("%lld",&a[i]);}int tot=0;for(i=1;i<=n;i++){if(a[i]!=0){a[++tot]=a[i];}s[i]=s[i-1]+a[i];}n=tot;q[1][++tl[1]]=0;for(i=1;i<=n;i++){for(j=1;j<=min(m,i);j++){while(hd[j]<tl[j]&&xl(q[j][hd[j]+1],q[j][hd[j]],j)<2*s[i]){hd[j]++;}k=q[j][hd[j]];f[i][j]=f[k][j-1]+(s[i]-s[k])*(s[i]-s[k]);if(j==m){continue ;}while(hd[j+1]<tl[j+1]&&xl(q[j+1][tl[j+1]-1],q[j+1][tl[j+1]],j+1)>xl(q[j+1][tl[j+1]],i,j+1)){tl[j+1]--;}q[j+1][++tl[j+1]]=i;}}printf("%lld\n",f[n][m]*m-s[n]*s[n]);return 0;}/*10 31 2 3 4 5 6 7 8 9 10*/
0 0
- BZOJ4518 && SDOi2016 征途
- bzoj4518: [Sdoi2016]征途
- BZOJ4518 [Sdoi2016]征途
- bzoj4518【SDOI2016】征途
- bzoj4518[Sdoi2016] 征途
- bzoj4518: [Sdoi2016]征途
- BZOJ4518: [Sdoi2016]征途
- BZOJ4518: [Sdoi2016]征途
- [BZOJ4518][Sdoi2016]征途(斜率优化dp)
- bzoj4518 [Sdoi2016]征途 (斜率优化)
- bzoj4518 [Sdoi2016]征途(斜率优化dp)
- [BZOJ4518][SDOI2016]征途(斜率优化DP)
- bzoj4518 [ SDOI2016 ] --斜率优化DP
- 【BZOJ4518】征途,斜率优化DP
- BZOJ 4518: [Sdoi2016]征途
- BZOJ 4518: [Sdoi2016]征途
- 4518: [Sdoi2016]征途
- bzoj 4518: [Sdoi2016]征途
- 139. Word Break 动态规划
- vtk实战(四十八)——写入raw/mha/mhd格式
- M - 小希的迷宫——HOJ
- scrapy实现分页爬取
- BZOJ4545 DQS的trie
- BZOJ4518 [Sdoi2016]征途
- Storm-1.0.0新特性整理
- Linux系统崩溃,数据迁移
- android 修改AVD的存放位置
- RDD
- 移动广告sdk开发
- 工作流Activiti的学习总结(四)Spring和Activiti的整合配置讲解
- 逆水行舟,不进则退
- hdu 2126 背包种类