[APIO2010]特别行动队

Utrust4701F与Utrust2700R读写器在银河麒麟系统的安装及测试步骤说明 Utrust4701F与Utrust2700R读写器支持银河麒麟系统,广泛应用会员管理、支付管理等领域。本文将重点介绍Utrust4701F与Utrust2700R读写器在银河麒麟系统的安装及测试步骤说明。以上方法适用于主流国产操作系统,如 优麒麟(UbuntuKylin)/ 中标麒麟(NeoKylin) / UOS(统信操作系统)/ 中兴新支点 / 红旗 linux(redflag linux)/ 普华 Linux(I-soft OS) / 威科乐恩 Linux(WiOS)等 阅读详情
AI摘要

本文深入探讨了动态规划(DP)问题中的一种优化技术——斜率优化,通过具体实例解析了如何将DP问题转化为斜率优化问题,并提供了代码实现。主要关注于解决特定类型DP问题时的性能提升。

很显然是个DP

有方程f[i]=max{f[j]+Ax^2+Bx+C} x=s[i]-s[j] j∈[1,i-1]

这样一个DP方程是O(n^2)的,对于原题最多只能过50%数据


那么这道题可以斜率优化

从方程着手,方程可以化为

f[i]=max{(f[j]+A*s[j]^2+B*s[j]+C)+(-2A*s[i]*s[j])}+A*s[i]^2+A*s[i]

我们把(f[j]+A*s[j]^2+B*s[j]+C)看成y,(-2A*s[i]*s[j])看成-kx,-s[i]是斜率,递减,-2A*s[j]是x,递减

那么每个决策对应平面上一个点

而且斜率和横坐标均单调,可以用单调队列维护

对于每个i

弹出单调队列队首直到单调队列队首最优,

计算f[i]

在单调队列中维护相邻两个决策点的斜率单调递减

push决策点i



代码写得比较丑……

//Lib
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<ctime>

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<queue>
using namespace std;
//Macro
#define	rep(i,a,b)	for(int i=a,tt=b;i<=tt;++i)
#define	drep(i,a,b)	for(int i=a,tt=b;i>=tt;--i)
#define	erep(i,e,x)	for(int i=x;i;i=e[i].next)
#define	irep(i,x)	for(__typedef(x.begin()) i=x.begin();i!=x.end();i++)
#define	read()	(strtol(ipos,&ipos,10))
#define	sqr(x)	((x)*(x))
#define	pb	push_back
#define	PS	system("pause");
typedef	long long	ll;
typedef	pair<int,int>	pii;
const int oo=~0U>>1;
const double inf=1e100;
const double eps=1e-6;
string name="commando", in=".in", out=".out";
//Var
ll n,A,B,C;
ll f[1000008],s[1000008],q[1000008];
void Init()
{
	ios::sync_with_stdio(0);
	cin>>n>>A>>B>>C;ll v;
	rep(i,1,n)cin>>v,s[i]=s[i-1]+v;
}
ll Cross(ll x1,ll y1,ll x2,ll y2){return x1*y2-x2*y1;}
ll calc3(ll x){return -A*s[x]*2;}
ll calc4(ll x){return f[x]+A*sqr(s[x])+B*s[x]+C;}
ll calc(ll a,ll b){return A*sqr(s[a]-s[b])+B*(s[a]-s[b])+C+f[b];}
ll calc2(ll a,ll b,ll c)
{
	ll x1=calc3(a),x2=calc3(b),x3=calc3(c);
	ll y1=calc4(a),y2=calc4(b),y3=calc4(c);
	return Cross(x2-x1,y2-y1,x3-x2,y3-y2);
}
void Work()
{
	ll l=1,r=1;q[l]=0;
	rep(i,1,n)
	{
		while(l<r&&calc(i,q[l])<calc(i,q[l+1]))l++;
		f[i]=calc(i,q[l]);
		while(l<r&&calc2(q[r-1],q[r],i)>=0)r--;
		q[++r]=i;
//		cout<<f[i]<<endl;
	}
	cout<<f[n]<<endl;
}
int main()
{
//	freopen((name+in).c_str(),"r",stdin);
//	freopen((name+out).c_str(),"w",stdout);
	Init();
	Work();
//	PS;
	return 0;
}


保姆级教程:Win10/Win11系统下ArcGIS 10.2中文版完整安装与破解(含License Manager启动失败解决方案) 本文提供Windows 10/11系统下ArcGIS 10.2中文版的完整安装与破解教程,重点解决License Manager启动失败等常见问题。从安装准备、破解文件处理到最终配置验证,详细指导用户完成每一步操作,确保软件正常运行。特别针对主机名修改、端口占用等疑难问题提供专业解决方案。 阅读详情

相关推荐

利用Python实现纬度加权平均(即NCL中的wgt_areaave)

当处理全球数据的时候,最常见的分析就是全球、北半球平均了,这时候一定要注意要根据纬度等信息进行加权,求加权平均,要不然结果肯定会不准。但是对于Python中,常规的计算包里面是没有的,或许现在有其他包可以实现,也可以告诉我~。

记录基于python语言处理气象问题的一些代码,包括不限于气象数据读取、机器学习和深度学习建模。 5745

APIO2010 特别行动队

此题是很好的凸壳优化的动态规划题。 【题意简述】: 给定一个含N个正数的序列,要求把序列分成若干个连续段。给每个连续段定义一个函数f,其值为A*sum^2 + B*sum + C。其中sum表示这个连续段的各个数字之和,A、B、C是三个给定的整数参数,其中A 【朴素动态规划】 用状态F[i]表示将序列的前i个数分成若干段可以得到的最大的f函数之和。则课的状态转移方程: F[i] = max{F[j]+A*(S[i]-S[j])^2 + B*(S[i]-S[j]) + C},0 初始状态F[0]=

Ambusher999 2082

Ubuntu docker镜像中下载安装 DPABI(DPARSF)

在Ubuntu服务器的docker镜像中用MATLAB运行DPABI(以及使用DPARSF的功能)。

Pandako's Blog 1722

[APIO2010] 特别行动队

题目描述  你有一支由n名预备役士兵组成的部队,士兵从1到n编号,要将他们拆分成若干特别行动队调入战场。出于默契考虑,同一支特别行动队中队员的编号应该连续,即为形如(i,i+1,…,i+k)的序列。   编号为i的士兵的初始战斗力为xi,一支特别运动队的初始战斗力x为队内士兵初始战斗力之和,即x=(xi)+(xi+1)+…+(xi+k)。   通过长期的观察,你总结出一支特别行动队的初始战斗力x

Bill_Yang_2016的博客 1110

HDMI协议介绍(一)--Overview

HDMI全称(High Definition Multimedia Interface)高清多媒体接口,支持在单线缆上传输全数字高清视频和多声道音频。

SlamDunk的博客 2万+

保姆级教程:用Docker Compose一键部署WVP-PRO+ZLM+录像服务(含Nginx反代)

本文提供了一套完整的容器化GB28181视频平台部署方案,通过Docker Compose实现WVP-PRO、ZLMediaKit(ZLM)和录像服务的一键式部署。详细介绍了环境准备、架构设计、容器化部署实战以及高级配置优化,帮助用户快速搭建高性能视频监控管理平台,适用于安防行业和物联网设备管理场景。

weixin_30415113的博客 861

【斜率优化】[APIO2010]特别行动队

题目 题目描述 你有一支由 nn 名预备役士兵组成的部队,士兵从 11 到 nn 编号,你要将他们拆分成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号应该连续,即为形如 (i, i + 1, \cdots i + k)(i,i+1,⋯i+k)的序列。所有的队员都应该属于且仅属于一支特别行动队。 编号为 ii 的士兵的初始战斗力为 x_ix i ​ ,一支特别行动队的初始战斗力 XX 为队内士兵初始战斗力之和,即 X = x_i + x_{i+1} + \cdots + x_{i+k}

Brute♂force 459

解锁 STP 与 SOLIDWORKS 转换密码:工具及迪威在线转换秘籍

STP 文件能够完整地记录 3D 模型的几何形状、尺寸、公差、材料属性等丰富信息,无论是简单的机械零件,还是复杂的装配体,都能精准呈现。而在线转换以迪威模型为例,凭借便捷性、高效性和安全性,为广大 3D 专业技术人员和学生党在无需安装额外软件的情况下,轻松实现格式转换提供了有力支持。在实际工作和学习中,可根据自身具体情况灵活选择合适的转换方式,以确保 3D 设计工作流程的顺畅进行,让创意在不同格式间自由流动并绽放光彩。在 3D 设计与建模的广袤世界里,不同格式文件间的转换常常是连接创意与实现的关键桥梁。

技术说明博主 3444

洛谷 P3628 [APIO2010]特别行动队

斜率优化dp

我要吃熊猫 526

优快云专栏限时活动!福利公告必读!

本人优快云付费专栏周排名27名专业博主,每周文章平均阅读量约7w以上!

FJN110的博客 3154

Android功耗系列专题理论之十一:高通QCOM平台待机功耗问题分析方法

本文详细介绍了高通QCOM平台待机功耗问题的分析方法。首先强调测试环境标准化的重要性,包括关闭无线功能、日志记录和非必要传感器。重点分析了硬件连接检查、驱动配置验证、电源管理策略优化等关键步骤。文章详细讲解了射频校准、时钟源/中断分析、子系统状态检查等专业技术方法,并提供了具体的命令行操作示例。此外还介绍了外设拆解、外灌电压测试等硬件排查手段,以及功耗分解板、波形分析等高级诊断技术。最后强调了固件版本验证和环境因素测试的必要性,为工程师提供了系统性的功耗问题排查思路。

771

bzoj1911【APIO2010】特别行动队

斜率优化DP

AaronPolaris 3147

YOLOv11 改进 - C2PSA | C2PSA融合TSSA(Token Statistics Self-Attention)令牌统计自注意力,优化遮挡目标感知

本文介绍了Token Statistics Self-Attention(TSSA)机制,并将其集成到YOLOv11中。传统自注意力计算复杂度高,TSSA进行了范式转变,基于token统计特征实现高效注意力交互。它通过“算法展开”推导得出,以“最大编码率降低”为目标,实现特征学习。TSSA包含动态分组和低秩投影优化两步创新,具备线性复杂度。我们将TSSA代码集成到YOLOv11的C2PSA模块中。实验表明,改进后的YOLOv11在目标检测任务中表现良好,验证了TSSA机制的有效性。

魔改工程师的博客 669

[Apio2010]特别行动队

[Apio2010]特别行动队 给定\(a,b,c\),将一个长度为n的序列\(\{a_i\}\)划分成若干个区间,定义一个区间的权值为\(ax^2+bx+c\)(x为区间数字和),求最小的权值之和,\(n\leq 1000000\)。 解 显然设\(f_i\)表示划分前i个数的最小权值之和,不难有递推方程(其中s为a的前缀和) \(f_i=\min_{0\leq j<i}\{f_...

weixin_30783629的博客 211

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

[洛谷P3628] [APIO2010]特别行动队

洛谷题目链接:[APIO2010]特别行动队 题目描述 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 \(n\) 编号,要将他们拆分 成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号 应该连续,即为形如 \((i, i + 1, ..., i + k)\) 的序列。 编号为 \(i\) 的士兵的初始战斗力为 \(x_i\) ,一支特别行动队的初始战斗力 \...

dengtun2502的博客 191

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

BZOJ1911 [Apio2010]特别行动队 【斜率优化】

1911: [Apio2010]特别行动队 Time Limit:4 SecMemory Limit:64 MB Submit:5005Solved:2455 [Submit][Status][Discuss] Description Input Output Sample Input 4 -1 10 -20 2 2 3 4 Sample Output ...

weixin_30268921的博客 85

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

[luogu P3628] [APIO2010]特别行动队

[luogu P3628] [APIO2010]特别行动队 题目描述 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号,要将他们拆分 成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号 应该连续,即为形如(i, i + 1, ..., i + k)(i,i+1,...,i+k)的序列。 编号为 i 的士兵的初始战斗力为 xi ,一支特别行动队的初始...

a8233821的博客 164

【bzoj1911】[Apio2010]特别行动队

1911: [Apio2010]特别行动队 Time Limit:4 SecMemory Limit:64 MBSubmit:4048Solved:1913[Submit][Status][Discuss] Description Input Output Sample Input 4 -1 10 -20 2 2 3 4 Sampl...

anzhi7214的博客 125

Bzoj1911 [Apio2010]特别行动队

1911: [Apio2010]特别行动队 Time Limit:4 SecMemory Limit:64 MBSubmit:3969Solved:1873 Description Input Output Sample Input 4 -1 10 -20 2 2 3 4 Sample Output 9 HINT ...

dezhen7015的博客 130

【HYSBZOJ】【DP】【斜率优化】1911-[Apio2010]特别行动队

HYSBZOJ 1911 [Apio2010]特别行动队 题目 ◇题目传送门◆ 题目大意 给定一个数列,将它分为若干个连续的数列,对于每个数列求出其元素和,并代入函数y=ax2+bx+c(a&amp;amp;lt;0)y=ax^2+bx+c(a&amp;amp;lt;0)y=ax2+bx+c(a&amp;lt;0)后计算出所有序列的值的总和,求出这个最大值。 思路 记s(i)s(i)s(i)为由第一111元素至第iii元...

IDDFS 238

1911: [Apio2010]特别行动队

1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MB Submit: 4061  Solved: 1922 [Submit][Status][Discuss] Description Input Output Sample Input 4 -1 10 -20 2 2 3 4

cx_lzx蒟蒻的博客 432

P3628 [APIO2010] 特别行动队题解

该问题要求将n名士兵分成若干连续小队,使得各小队修正战斗力之和最大。修正战斗力公式为X'=aX²+bX+c(a<0),其中X为小队初始战斗力之和。采用动态规划方法,定义f[i]为前i名士兵的最大战斗力。通过优化内层循环范围(如限制j的范围为i-250到i-1),可将时间复杂度从O(n²)降至O(250n)。输入为士兵人数n、系数a,b,c和各士兵战斗力,输出最大修正战斗力之和。样例中最佳分组方案为(1,2)、(3)、(4),总战斗力为9。

bz02_2023f2的博客 643

【BZOJ1911】【APIO2010】特别行动队

【BZOJ1911】【APIO2010】特别行动队题面Description你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号, 要将他们拆分成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号应该连续,即为形如(i, i + 1, …, i + k)的序列。 编号为 i 的士兵的初始战斗力为 xi ,一支特别行动队的初始战斗力 x 为队内士兵初始战斗力之和,即 X

小蒟蒻yyb的博客 927

BZOJ 1911([Apio2010]特别行动队-斜率优化第一题)

1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MB Submit: 1684  Solved: 706 [Submit][Status][Discuss] Description Input Output Sample Input 4 -1 10 -20 2 2 3 4

nike0good |Oier&ACMer | 熟能生巧 2048

【APIO2010】特别行动队

【APIO2010】 【题目描述】 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1...N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一个单位长

OI技术宅 1276
上一篇: [NOI2010]海拔
下一篇: [POI2005]Kos-Dicing
OrpineX
博客等级 码龄17年 16粉丝 68原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值