博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj1096: [ZJOI2007]仓库建设
阅读量:5021 次
发布时间:2019-06-12

本文共 872 字,大约阅读时间需要 2 分钟。

复习斜率优化。

#include
#include
#include
using namespace std;typedef long long LL;int list[1010000];LL f[1010000],d[1010000],sp[1010000];LL s[1010000],p[1010000],c[1010000];double X(int j){ return double(f[j]+d[j]);}double Y(int j){ return double(sp[j]);}double slope(int j1,int j2){ return (X(j1)-X(j2))/(Y(j1)-Y(j2));}int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%lld%lld%lld",&s[i],&p[i],&c[i]); d[0]=0;sp[0]=0; for(int i=1;i<=n;i++) { sp[i]=sp[i-1]+p[i]; d[i]=d[i-1]+p[i]*s[i]; } int head=1,tail=1; list[1]=0; for(int i=1;i<=n;i++) { while(head
slope(list[tail],i))tail--; list[++tail]=i; } printf("%lld\n",f[n]); return 0;}

 

转载于:https://www.cnblogs.com/AKCqhzdy/p/7799553.html

你可能感兴趣的文章
AutoMapper转换规则
查看>>
linux内核分析系列--百度
查看>>
SDN:软件定义网络
查看>>
GitHub具体教程
查看>>
写时拷贝(Copy On Write)方案详解
查看>>
CentOS 從 PHP 5.1.X 升級到 PHP 5.3
查看>>
flutter key
查看>>
iOS 开发常见函数
查看>>
Android: NDK编程入门笔记
查看>>
深刻理解Linux进程间通信(IPC)
查看>>
windows 7中添加新硬件的两种方法(本地回环网卡)
查看>>
javascript 高级程序设计学习笔记(面向对象的程序设计) 2
查看>>
支配集,点覆盖集,点独立集之间的联系
查看>>
SetCapture ReleaseCapture
查看>>
DataGridView ——管理员对用户的那点操作
查看>>
POJ - 1185 炮兵阵地 (状态压缩)
查看>>
ios7 JavaScriptCore.framework
查看>>
算法6-5:哈希表应用之集合
查看>>
压力单位MPa、Psi和bar之间换算公式
查看>>
Moscow Pre-Finals Workshop 2016. National Taiwan U Selection
查看>>