当前位置: 首页 > news >正文

BZOJ 1010: [HNOI2008]玩具装箱toy(dp+斜率优化)

 要写题解好像很长...不想写(不会写..) BZOJ discuss里讲得挺好的...

------------------------------------------------------------------------------

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
 
#define Rep(i,l,r) for(int i=l;i<=r;++i)
 
using namespace std;
 
typedef long long ll;
const int maxn=50000+5;
 
ll sum[maxn];
ll d[maxn];
int q[maxn];
 
#define A(i) (sum[i]+i)
#define B(i) (A(i)+1+l)
#define X(k,j) (d[k]+B(k)*B(k)-d[j]-B(j)*B(j))
#define Y(k,j) (B(k)-B(j))
 
int main()
{
// freopen("test.in","r",stdin);
// freopen("test.out","w",stdout);
int n,l;
scanf("%d%d",&n,&l);
sum[0]=0;
Rep(i,1,n) {
int t; scanf("%d",&t);
sum[i]=sum[i-1]+t;
}
int front=0,rear=0; q[0]=d[0]=0;
Rep(i,1,n) {
while(rear>front && X(q[front+1],q[front])<=Y(q[front+1],q[front])*2*A(i)) ++front;
d[i]=d[q[front]]+(A(i)-B(q[front]))*(A(i)-B(q[front]));
while(rear>front && X(i,q[rear])*Y(q[rear],q[rear-1])*2<=X(q[rear],q[rear-1])*Y(i,q[rear])*2) --rear;
q[++rear]=i;
}
printf("%lld\n",d[n]);
return 0;
}

  

------------------------------------------------------------------------------ 

转载于:https://www.cnblogs.com/JSZX11556/p/4395038.html

相关文章:

  • 解决问题的方法
  • html5开发之viewport使用
  • 迅雷下载百度云文件
  • Linux 命令的一些记录(五):在安装ubuntu的一些操作
  • Windows下GitHub安装(简易版)
  • MeeGo handset 1.1开发环境[2]:安装MeeGo 1.1 SDK
  • c 有关N!阶乘的相关问题----陆续补充上来
  • JSP
  • 土法合并GridView表头
  • 现代编译原理--第零章(含代码)
  • X86保护模式编程总结(1)
  • X86保护模式编程总结(2)
  • 请不要做浮躁的IT人
  • X86保护模式编程总结(3)
  • js数组拍平
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • JavaScript函数式编程(一)
  • JavaScript新鲜事·第5期
  • Java精华积累:初学者都应该搞懂的问题
  • jdbc就是这么简单
  • JS数组方法汇总
  • MQ框架的比较
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • 关于Java中分层中遇到的一些问题
  • 驱动程序原理
  • 时间复杂度与空间复杂度分析
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 应用生命周期终极 DevOps 工具包
  • 说说我为什么看好Spring Cloud Alibaba
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #include
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (42)STM32——LCD显示屏实验笔记
  • (C#)一个最简单的链表类
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转)详解PHP处理密码的几种方式
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .NET大文件上传知识整理
  • .NET中使用Redis (二)
  • ??在JSP中,java和JavaScript如何交互?
  • @PreAuthorize注解
  • [20171101]rman to destination.txt
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [Android Studio 权威教程]断点调试和高级调试
  • [C/C++随笔] char与unsigned char区别
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽
  • [dart学习]第四篇:函数
  • [NKCTF 2024]web解析
  • [nlp] 多语言大模型不同语种/语系数据的数据配比调节