hdu 3507 斜率优化dp入门

[模板] 斜率优化Dp详解 算法简介今天xinyue讲了斜率优化,全程懵逼,居然还有这么牛逼的东西。 于是与achen讨论了一下,总结一些东西。 斜率优化Dp其实是单调队列的推广,单调队列、旋转卡壳、斜率优化都利用了单调性降低时间复杂度。算法简介举个例子 有些动规状态转移方程可以写成 f[i]=min/max{f[j]+…+x[i]},省略号中只有与j有关的变量。 我们就可以用单调队列进行优化,使O(n^2)降为O( 阅读详情

Print Article

Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 6389    Accepted Submission(s): 1965


Problem Description
Zero has an old printer that doesn't work well sometimes. As it is antique, he still like to use it to print articles. But it is too old to work for a long time and it will certainly wear and tear, so Zero use a cost to evaluate this degree.
One day Zero want to print an article which has N words, and each word i has a cost Ci to be printed. Also, Zero know that print k words in one line will cost

M is a const number.
Now Zero want to know the minimum cost in order to arrange the article perfectly.
 

Input
There are many test cases. For each test case, There are two numbers N and M in the first line (0 ≤ n ≤  500000, 0 ≤ M ≤ 1000). Then, there are N numbers in the next 2 to N + 1 lines. Input are terminated by EOF.
 

Output
A single number, meaning the mininum cost to print the article.
 

Sample Input
  
5 5 5 9 5 7 5
 

Sample Output
  
230
 

Author
Xnozero
 

Source
 

Recommend
zhengfeng   |   We have carefully selected several similar problems for you:   3506  3501  3504  3505  3498 
 


参考blog :http://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>


using namespace std;

#define maxn 500005

typedef long long ll;

ll sum[maxn];
ll dp[maxn];
int q[maxn];
int head=0, tail=-1;
int n, m;

ll sq(ll tmp)
{
    return tmp*tmp;
}

int size()
{
    return tail-head+1;
}



ll getk_up(int i, int j)
{
    return dp[i]+sq(sum[i])-dp[j]-sq(sum[j]);
}

ll getk_down(int i, int j)
{
    return (sum[i]-sum[j])*2;
}


int main()
{

    while(scanf("%d%d", &n, &m)!=EOF){
        sum[0] = 0;
        for(int i = 1; i <= n; i++){
            scanf("%I64d", sum+i);
            sum[i] += sum[i-1];
        }


        head = 0, tail = -1;
        dp[0] = 0;
        q[++tail] = 0;
        for(int i = 1; i <= n; i++){
            while(size()>= 2 && getk_up(q[head+1],q[head])<=sum[i]*getk_down(q[head+1],q[head]))
                head++;

            int pos = q[head];
            dp[i] = dp[pos]+sq(sum[i]-sum[pos])+m;

            while(size()>=2 && getk_up(i,q[tail])*getk_down(q[tail],q[tail-1])<=getk_up(q[tail],q[tail-1])*getk_down(i, q[tail]))
                tail--;

            q[++tail] = i;
        }

        printf("%I64d\n", dp[n]);
    }
    return 0;
}



Ubuntu20.04浏览器上网慢解决方法——体验优化 一、问题描述 ubuntu上网慢的原因可能有多种: 1.主机网络慢 2.客户机下载网络占用 3.域名解析慢 本文仅代表本人配置过程,网络配置需谨慎小心 二、使用本地DNS服务器解决问题 1.安装 dnsmasq sudo apt-get install dnsmasq 2.配置dnsmasq ——终端输入: sudo gedit /etc/dnsmasq.conf ——文本中查找 : #resolv-file= ——将之替换为: resolv-file=/etc/resolv.dnsm 阅读详情

相关推荐

在Docker中集成GPU监控体系

先上效果图 等文档整理出来再更

tamako0v0的博客 2470

HDU3507(斜率优化dp 入门)

解题思路:第一次做斜率优化dp,参考了博客http://www.cnblogs.com/kuangbin/archive/2012/08/26/2657650.html。使原本O(n^2)的复杂度变成O(n)。看完博客之后,看了一下代码发现代码中(yj-yk)/(xj-xk) <= sum[i],只要碰到一个不符合这个条件就用j来算dp[i]了。其实是这样的,因为符合上面那个不等式,代表j在...

qq_39861441的博客 320

手机如何高效辅助林业调查

手机如何高效辅助林业调查 很多林业工作者将栅格类型的地形图处理后导入平板电脑,在林地使用平板电脑加载小班矢量图,辅助林业调查。但是,如果没有地形图底图,这种方法可能就有难度,而且最重要的是,大部分林地工作者没有能力配置平板电脑。大凡林业基层工作者在林地调查时,除调查记录本等部分纸质材料外,都必然携带手机和水杯,此外其他设备已经成为累赘,尤其是炎热的夏季在杂灌丛生的林地进行调查作业。因此,使用手机...

xu780820的博客 3077

hdu 3507 斜率优化dp 入门学习

我们知道,有些DP方程可以转化成DP[i]=f[j]+x[i]的形式,其中f[j]中保存了只与j相关的量。这样的DP方程我们可以用单调队列进行优化,从而使得O(n^2)的复杂度降到O(n)。   可是并不是所有的方程都可以转化成上面的形式,举个例子:dp[i]=dp[j]+(x[i]-x[j])*(x[i]-x[j])。如果把右边的乘法化开的话,会得到x[i]*x[j]的项。这就没办法

天逸南爵的专栏 2534

【EMC电磁兼容】02.04——原理图的实战落地细节

原理图上的关于EMC的落地体现一、元器件的选型二、原理图上的EMC体现在哪里?1.芯片电源管脚滤波去耦:2.时钟电路滤波设计3.低速电路滤波抗干扰设计4.通讯接口电路的防护滤波5.系统输入电源端口电路的防护滤波6.系统接地的定义7.芯片软件功能的审查 一、元器件的选型 ​ 原理图最初设计涉及到选型元器件方面: 元器件选型 不仅仅功能需要满足要求,还需要考虑其它细节参数在不同应力下的反应,封装的不同也会产生不同的变化。 元器件替代 常常因为成本原因进行器件替代,除了要考虑功能参数相同时也要考虑系统参数

Time to Forget 2243

OpenCV视频防抖算法实现与优化指南

本文详细解析了如何使用OpenCV实现视频防抖算法。通过特征点检测与光流跟踪估算帧间运动,利用滑动平均平滑运动轨迹,并应用仿射变换重塑视频帧。文章提供了完整的代码实现、参数调优指南及黑边处理等优化技巧,帮助开发者高效处理手持拍摄等场景下的视频抖动问题。

weixin_29062823的博客 339

hdu3507之斜率优化DP入门

Print Article Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 4780    Accepted Submission(s): 1437 Problem Description Zero has an

Stephen 3497

从寄存器配置到G值:一份给STM32开发者的SC7A20加速度数据换算保姆级指南

本文为STM32开发者提供SC7A20三轴加速度传感器的数据换算保姆级指南,详细解析从寄存器配置到G值转换的全过程。涵盖量程选择、输出值换算原理及优化代码实现,帮助开发者快速掌握加速度数据的物理意义转换技巧,提升运动感知系统开发效率。

weixin_29172963的博客 172

hdu 3507 斜率优化DP入门题

http://acm.hdu.edu.cn/showproblem.php?pid=3507 Problem Description Zero has an old printer that doesn't work well sometimes. As it is antique, he still like to use it to print articles. But it

ACM,再见! 760

把 SAP Fiori Launchpad Designer 的 Catalog 与 Group 传输讲透:从 CONF、CUST 到 Transport Request 的完整理解

SAP Fiori项目中,catalog和group的传输问题往往源于对FLPD层次模型的理解不足。FLPD包含configuration(系统级)和customizing(客户端级)两个层面,分别对应workbench request和customizing request传输方式。常见误区包括:混淆/UI2/FLPD_CONF和/UI2/FLPD_CUST入口、未提前创建传输请求、不了解层次覆盖机制(customizing会覆盖configuration)。当客户端修改configuration层的对象

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 101

128、点云配准与ICP:经典配准算法与深度学习配准

上周调试一台双臂协作机器人,左手持结构光相机扫描桌面上的随机堆叠工件,右手准备执行抓取。问题出在“对齐”这一步——相机扫描得到的点云和CAD模型点云之间差了大约15度的旋转,导致抓取姿态计算出来直接怼到桌面上。我第一反应是“ICP跑一下不就行了”,结果跑了三分钟,误差纹丝不动,甚至越迭代越发散。后来查了日志才发现,初始位姿给得太离谱,ICP直接掉进了局部最优。这个场景太典型了——很多人以为点云配准就是调个ICP库函数,实际工程里坑比想象中多得多。今天这篇笔记,咱们把点云配准这件事从头捋一遍。

sundong_81的博客 42

hdu3507 斜率优化dp入门

刚开始接触斜率优化dp,做的一道简单的入门题目,这里有一篇论文,前半部分讲的就是这个浅谈数形结合思想在信息学竞赛中的应用 分析: 我们假设k<j<ik<j<i。如果在j的时候决策要比在k的时候决策好,那么也就是 dp[j]+M+(sum[i]−sum[j])2<dp[k]+M+(sum[i]−sum[k])2dp[j]+M+(sum[i]-sum[j])^2<dp[k]+M+(sum[i]-s

touwangyi的博客 408

一张图讲透银行个人外汇业务逻辑和实操

个人外汇业务主要分为结售汇和外币兑换两类,前者满足日常跨境需求,后者因投机属性多数银行已暂停。业务核心是利用汇率波动实现货币兑换,满足支付或投资需求。交易涉及客户分类、主流币种、多种渠道和汇率计算规则,需区分直接/间接标价法判断汇率走势。银行通过"货币兑换"科目核算损益,采用期末折算确认盈亏。监管要求包括5万美元年度额度、合法渠道、真实性原则及大额申报等。随着跨境金融数字化发展,掌握基础逻辑和合规要求是安全参与外汇业务的关键。

银行信息系统应用架构详解 288

斜率优化DP入门_HDU3507_Print Article

一次开火车遇到的知识盲区,只能从基础入门了,找了一个hdu的题学习了一发。 个人比较喜欢纸质笔记,字丑见谅。 #include <bits/stdc++.h> const long long mod = 1e9+7; const double ex = 1e-10; #define inf 0x3f3f3f3f #define iinf 0x3f3f3f3...

bandi8620的博客 152

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

HDU 3507 Print Article DP(斜率优化入门)

点击打开链接 参考链接 题意:n个数有代价ci n s[i]为i的前缀和,设d[i] 写出前i个数的最小代价 d[i]=min(d[j]+(sum[i]-sum[j])^2+M) j=1~i j+1~i为最后一段长度 n 结论1: 考虑决策j,k 若决策j优于决策k d[j]+(sum[i]-sum[j])^2+M 化解得 (d[j]+sum[j]^2)-(d[k]+

Masamiiiiii 437

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

hdu 3507 Print Article(斜率优化dp入门题)

题意:输入n个数字,将其分成几组,每一组算出其和的平方加上m,将每一组的值求和,求这个和的最小值 dp方程:dp[i]=min{dp[j]+(S[i]−S[j])^2+m}(j<i) 这里要用斜率来优化才能用单调队列 这篇博客讲的很不错了:https://www.cnblogs.com/orzzz/p/7885971.html #include<bits/stdc++.h&...

weixin_30782331的博客 129

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

[hdu3507] Print Article DP斜率优化入门

Print ArticleProblem Description Zero has an old printer that doesn’t work well sometimes. As it is antique, he still like to use it to print articles. But it is too old to work for a long time and it

Unlimited Code Works 350

Hdu 3507 Print Article【斜率优化Dp入门】

Print Article Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Submission(s): 14015    Accepted Submission(s): 4351 Problem Description Zero has a

mengxiang000000 633

[旧文章补档]HDU 3507 Print Article 斜率优化dp 入门+个人理解

斜率优化dp

Bakapiano 249

[hdu3507 Print Article]斜率优化dp入门

题意:需要打印n个正整数,1个数要么单独打印要么和前面一个数一起打印,1次打印1组数的代价为这组数的和的平方加上常数M。求最小代价。 思路:如果令dp[i]为打印前i个数的最小代价,那么有 dp[i]=min(dp[j]+(sum[i]-sum[j])2+M),j<i 直接枚举转移是O(n2)的,然而这个方程可以利用斜率优化将复杂度降到O(n)。 根据斜率优化的一般思路,对...

weixin_30512785的博客 93

【HDU3507】Print Article-DP斜率优化入门

【HDU3507】Print Article-DP斜率优化入门

Maxwei_wzj的OI世界 436

hdu3507 Print Article[斜率优化dp入门题]

Print Article Time Limit: 9000/3000 MS (Java/Others)Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 11761Accepted Submission(s): 3586 Problem Description Zero has an old prin...

weixin_34390996的博客 74

动态规划推荐题目(持续更新)

一.基础DP(无需进行特别优化) 1.POJ 1745 Divisibility 2.POJ 1837 Balance 3.POJ 1088 滑雪 4.HDU 2845 Beans 5.POJ 1050 To the Max   二.进阶DP(需要进行必要优化)   (单调队列优化) 1.HDU 3401 Trade 2.UESTC 1685 我要长高 3.POJ 1821

iCpC之旅 1195

划分型DP的斜率优化入门

单调队列斜率优化,最简单的斜率优化入门。

RBS的专栏 601

【详解】斜率优化 DP

斜率优化详解+凸包详解

2403_87021226的博客 2344

斜率优化dp简讲 && HDU 3507 Print Article

Problem DescriptionZero has an old printer that doesn’t work well sometimes. As it is antique, he still like to use it to print articles. But it is too old to work for a long time and it will certainly

Time_major 3285
上一篇: hdu 4961 枚举约数O(n*sqrt(n))
下一篇: hdu 3506 dp+四边形不等式优化
HuanTongH
博客等级 码龄12年 7粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值