E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Apio2010
BZOJ-1911: [
Apio2010
]特别行动队(DP+斜率优化)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1911嗯。。。方程很好想吧?f(i)=max{f(j-1)+value(j,i)}value(j,i)表示从i选取到j在连续一段中的价值。然后化简:令:s[i]=x[1]+...+s[i]X(i)=(2*a*s[i-1])Y(i)=(a*s[i-1]*s[i-1]-b*s[i-1]+f[i-1]
AmadeusChan
·
2023-08-17 12:25
BZOJ 1913: [
Apio2010
]signaling 信号覆盖
题目地址:http://www.lydsy.com/JudgeOnline/problem.php?id=1913题目大意:一个平面上n个点,随机选3个点构成一个圆,问期望有多少个点在这个圆内和圆上。数据保证没有4点共圆、3点共线和重点。算法讨论:考虑四边形,凸四边形对答案的贡献为2,凹四边形对答案的贡献为1。设凹四边形个数为a,凸四边形个数为b,那么b=C(n,4)-a。枚举凹四边形的中间点,以
Charlie-Pan
·
2020-08-24 10:54
BZOJ
bzoj1911 [
APIO2010
] -- 斜率优化
简单的斜率优化。首先得到DP方程:f[i]=max(f[j]+a*(sum[i]-sum[j])2+b*(sum[i]-sum[j])+c),jf[k]+a*(sum[i]-sum[k])2+b*(sum[i]-sum[k])+cf[j]+a*s[j]2-b*s[j]-(f[k]+a*s[k]2-b*s[k])>2*a*s[i]*(s[j]-s[k])然后就可以斜率优化了。代码:1#include
agsqv28660
·
2020-08-24 07:02
APIO2010
特别行动队
https://www.luogu.org/problem/show?pid=3628特别行动队可以说是斜率优化dp的模板题,50分的方程很容易写出,先推导函数然后用单调队列维护上凸壳。代码:#includeusingnamespacestd;typedeflonglongLL;constintN=1000005;intq[2*N],a,b,c;LLf[N],s[N];doublecal(intx
heheyh123
·
2020-08-23 01:24
BZO1911 ||洛谷P3628 [
APIO2010
]特别行动队【斜率优化DP】
TimeLimit:4SecMemoryLimit:64MBDescriptionInputOutputHINT题目分析斜率优化DP–详解首先容易想到一个简单的O(n2)O(n^2)O(n2)算法dp[i]dp[i]dp[i]表示前iii个士兵分组能得到的最大战斗力dp[i]=max(dp[j]+a∗(sum[i]−sum[j])2+b∗(sum[i]−sum[j])+c)dp[i]=max(\d
niiick
·
2020-08-21 00:23
动态规划--斜率优化DP
斜率优化dp 学习笔记
从一个问题开始真正理解斜率优化dporzISA1问题
Apio2010
特别行动队1.1题意简述给出一个序列x1,x2...xn,将其划分成若干个连续的区间,每一段区间[l,r]的价值为ax2+bx+c,其中
Clove_unique
·
2020-08-20 22:11
学习笔记
dp
[
APIO2010
]巡逻
题目:巡逻网址:https://www.luogu.com.cn/problem/P3629题目描述在一个地区中有\(n\)个村庄,编号为\(1,2,...,n\)。有\(n–1\)条道路连接着这些村庄,每条道路刚好连接两个村庄,从任何一个村庄,都可以通过这些道路到达其他任一个村庄。每条道路的长度均为\(1\)个单位。为保证该地区的安全,巡警车每天要到所有的道路上巡逻。警察局设在编号为\(1\)的
大秦帝国
·
2020-08-18 06:00
P3628 [
APIO2010
]特别行动队(斜率优化dp)
特别行动队题目描述你有一支由n名预备役士兵组成的部队,士兵从1到n编号,要将他们拆分成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号应该连续,即为形如(i,i+1,...,i+k)(i,i+1,...,i+k)的序列。编号为i的士兵的初始战斗力为xi,一支特别行动队的初始战斗力x为队内士兵初始战斗力之和,即x=x_i+x_{i+1}+...+x_{i+k}x=xi+xi+1+
Mannix_Y
·
2020-08-11 02:30
斜率优化dp
重走长征路---OI每周刷题记录---5月24日 2014
「bzoj1911」[
Apio2010
]特别行动队3.「bzoj1096」[ZJOI200
mrcrack
·
2020-08-09 09:41
跟着大佬学算法
bzoj1911: [
Apio2010
]特别行动队 (斜率优化dp)
Solution首先可以得到dpdpdp方程f[i]=max(f[j]+a(sum[i]−sum[j])2+b(sum[i]−sum[j])+c)f[i]=max(f[j]+a(sum[i]-sum[j])^2+b(sum[i]-sum[j])+c)f[i]=max(f[j]+a(sum[i]−sum[j])2+b(sum[i]−sum[j])+c)f[i]=f[j]+a⋅sum[i]2−2a⋅s
sunshiness_s
·
2020-08-07 18:48
dp
斜率优化dp
【bzoj1912】[
Apio2010
]patrol 巡逻
1912:[
Apio2010
]patrol巡逻TimeLimit:4SecMemoryLimit:64MBSubmit:1740Solved:907[Submit][Status][Discuss]DescriptionInput
Joky_2002
·
2020-08-02 16:35
动态规划
C
bzoj
树上最长链
bzoj1912 [
Apio2010
]patrol 巡逻(dp求树上最长链)
显然答案一开始是n-1#include#include#includeusingnamespacestd;#definelllonglong#defineinf0x3f3f3f3f#defineN100010inlinechargc(){staticcharbuf[1'9'){if(ch=='-')f=-1;ch=gc();}while(ch>='0'&&chmx[x])mx2[x]=mx[x],
Icefox_zhx
·
2020-08-02 16:27
bzoj
-----树-------
[BZOJ1912][
Apio2010
]patrol 巡逻(树上最长链)
======这里放传送门======题解因为一开始的图是一棵树,所以在不加边的情况下每条边一定会被经过两次,巡逻的代价固定为ans=2∗(n−1)。如果在树上加一条边,那么就会有一条链不需要走两次,这条链的起点和终点就是新边的起点和终点。那么如果只能在树上加一条边的话,和这条边构成环的链一定是越长越好。于是找树上最长链就能解决问题。第一次求最长链的时候可以用dfs也可以DP,这里用了dfs,方法是
FromATP
·
2020-08-02 15:48
BZOJ
感觉很有趣
DP好难啊
【bzoj1912】[
Apio2010
]patrol 巡逻(树上最长链)
题目:我是超链接题解:显然如果不添加边的话,费用就是固定的ans=2*(n-1)新建的路一定要放到环中,两个村庄之前有边就不要再建了。。新建路的目的就是形成环,越大越好哎这个K=1好像ok的,那我们找一个树上最长链吧,答案就是ans-len+1?这个K=2怎么办啊?题目中要求每条边必须经过一次,也就是说为了满足这个条件,上一次加边之后本来可以只经过一次的某些边可能强行经过两次,这个环与第一个链重合
wwyx2001
·
2020-08-02 15:03
dp
【题解】bzoj1912(同洛谷P3629)[
APIO2010
]巡逻 树的直径
题目链接Input第一行包含两个整数n,K(1≤K≤2)。接下来n–1行,每行两个整数a,b,表示村庄a与b之间有一条道路(1≤a,b≤n)。Output输出一个整数,表示新建了K条道路后能达到的最小巡逻距离。SampleInput8112313453758556SampleOutput11HINT10%的数据中,n≤1000,K=1;30%的数据中,K=1;80%的数据中,每个村庄相邻的村庄数不
不进清北不改名
·
2020-08-02 13:42
洛谷
bzoj
APIO
树的直径
P3629 [
APIO2010
]巡逻-树的直径
在一个地区中有n个村庄,编号为1,2,...,n。有n–1条道路连接着这些村庄,每条道路刚好连接两个村庄,从任何一个村庄,都可以通过这些道路到达其他任一个村庄。每条道路的长度均为1个单位。为保证该地区的安全,巡警车每天要到所有的道路上巡逻。警察局设在编号为1的村庄里,每天巡警车总是从警察局出发,最终又回到警察局。下图表示一个有8个村庄的地区,其中村庄用圆表示(其中村庄1用黑色的圆表示),道路是连接
LingFengNJT
·
2020-07-08 02:35
图论-树的直径
bzoj1911 [
Apio2010
]特别行动队(斜率优化)
题目bzoj1911[
Apio2010
]特别行动队题解斜率优化DP设f[i]表示前i个士兵最大战斗力之和,有去掉max,把仅与j有关的移到一边,另一边放与仅与i有关的或和i、j都有关的,得根据上式,斜率为
逐梦起航-带梦飞翔
·
2018-09-28 15:23
刷题之路
动态规划DP
斜率优化
《算法竞赛进阶指南》刷书之旅
2018.09.07 bzoj1911: [
Apio2010
]特别行动队(斜率优化dp)
传送门斜率优化dp经典题。题目中说的很清楚,设f[i]表示前i个数分配出的最大值。那么有:f[i]=max(f[j]+A∗(sum[i]−sum[j])2+B∗(sum[i]−sum[j])+C)f[i]=max(f[j]+A∗(sum[i]−sum[j])2+B∗(sum[i]−sum[j])+C)=>f[i]=max(f[j]+A∗sum[j]2−2∗A∗sum[i]∗sum[j]−B∗sum
SC.ldxcaicai
·
2018-09-07 21:34
#
斜率优化
#
dp
APIO2010
巡逻 树的直径
题目大意:给定一棵树,加上1或者2条边,求在加边后,从1号节点出发遍历所有边再回到1号点的最小距离是多少。加上的边必须恰好经过一次。题解:不建立新的道路时,根据DFS遍历思想可以证明每条边都要走2次,总巡逻长度为2*(n-1)。建立一条新道路时,被这条道路所覆盖的边就只需要经过一次了(因为形成了环)。所以让这条边覆盖树的直径,答案为2(n-1)-d1+1。建立两条新道路时,又会形成一个环。当两个环
DyingShu
·
2018-08-17 20:57
图论
树的直径
[
APIO2010
]特别行动队
题目描述你有一支由n名预备役士兵组成的部队,士兵从1到n编号,要将他们拆分成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号应该连续,即为形如(i,i+1,…,i+k)(i,i+1,…,i+k)的序列。编号为i的士兵的初始战斗力为xi,一支特别行动队的初始战斗力x为队内士兵初始战斗力之和,即x=x_i+x_{i+1}+…+x_{i+k}x=xi+xi+1+…+xi+k。通过长期
CE自动机
·
2018-08-02 17:45
题解
dp
[BZOJ1913][
Apio2010
]signaling 信号覆盖(计算几何+组合数学)
题目描述传送门题解非常神奇的一道思路题,刚开始只会sb暴力这篇题解讲得非常好orz:http://blog.csdn.net/qpswwww/article/details/45334033代码#include#include#include#include#includeusingnamespacestd;#defineN1505constdoublepi=acos(-1.0);constdou
Clove_unique
·
2017-02-07 19:37
题解
计算几何
组合数学
[BZOJ1913][
Apio2010
]signaling 信号覆盖(计算几何+组合数学)
题目描述传送门题解非常神奇的一道思路题,刚开始只会sb暴力这篇题解讲得非常好orz:http://blog.csdn.net/qpswwww/article/details/45334033代码#include#include#include#include#includeusingnamespacestd;#defineN1505constdoublepi=acos(-1.0);constdou
Clove_unique
·
2017-02-07 19:37
题解
计算几何
组合数学
【bzoj 1911】【
Apio2010
】特别行动队 dp+单调队列斜率优化
1911:[
Apio2010
]特别行动队TimeLimit:4SecMemoryLimit:64MBSubmit:3263Solved:1477[Submit][Status][Discuss]DescriptionInputOutputSampleInput4
ALPS233
·
2016-11-29 16:00
dp
bzoj1911【
APIO2010
】特别行动队
1911:[
Apio2010
]特别行动队TimeLimit: 4Sec MemoryLimit: 64MBSubmit: 3600 Solved: 1651[Submit][Status][Discuss
AaronGZK
·
2016-05-18 00:00
斜率优化
bzoj
bzoj 1912: [
Apio2010
]patrol 巡逻
1912:[
Apio2010
]patrol巡逻TimeLimit: 4Sec MemoryLimit: 64MBSubmit: 1007 Solved: 549[Submit][Status][Discuss
clover_hxy
·
2016-05-03 14:00
[BZOJ1912][
Apio2010
]patrol 巡逻(dfs+并查集+树形dp)
题目描述传送门题解k=1时,首先使所有的路权都为1,求树上最长链,答案为2×(n-1)-(len1-1)k=2时,在k=1的基础上,将第一次选取的链上的边权都赋为-1,然后再求树的直径记为len2,答案为2×(n-1)-(len1-1)-(len2-1)注意第二次求树的直径有负边权dfs就不管用了,用树形dp代码#include #include #include usingnamespacest
Clove_unique
·
2016-05-03 14:00
dp
DFS
并查集
bzoj
apio
bzoj 1911: [
Apio2010
]特别行动队(斜率优化)
1911:[
Apio2010
]特别行动队TimeLimit: 4Sec MemoryLimit: 64MBSubmit: 3550 Solved: 1629[Submit][Status][Discuss
clover_hxy
·
2016-04-26 07:00
【bzoj 1911】 [
Apio2010
]特别行动队
1911:[
Apio2010
]特别行动队TimeLimit:4SecMemoryLimit:64MBSubmit:3532Solved:1618[Submit][Status][Discuss]DescriptionInputOutputSampleInput4
reverie_mjp
·
2016-04-24 20:00
dp
斜率优化
bzoj
[BZOJ1911][
Apio2010
]特别行动队(斜率优化dp)
题目描述传送门题解转移方程:fi=max{fj+a∗(si−sj)2+b∗(si−sj)+c}(j #include #include usingnamespacestd; #defineLLlonglong constintmax_n=1e6+5; intn,a,b,c,x,head,tail; intq[max_n]; LLs[max_n],f[max_n]; inlineLLK(int
Clove_unique
·
2016-04-23 09:00
dp
apio
bzoj
bzoj 1913: [
Apio2010
]signaling 信号覆盖
每个凸四边形对答案的贡献是2,每个凹四边形对答案的贡献是1.凹四边形贡献1是显然的,凸四边形贡献是2的原因是:如果一个点在一个三角形的外接圆内,那么α+β #include #include #include #include #definelllonglong #defineinf1e9 #defineeps1e-8 #definemd #defineN301
heheda_is_an_OIer
·
2016-04-20 15:00
【bzoj1911】[
Apio2010
]特别行动队 DP斜率优化
DescriptionInputOutputSampleInput4 -110-20 2234 SampleOutput9 HINTSource易写出状态转移方程:fi=max(fj+A(Si−Sj)2+B(Si−Sj)+C)Si是前缀和。然后,设jfk+A(Si−Sk)2+B(Si−Sk)+Cfj−fk+A(2Si−Sj−Sk)∗(Sk−Sj)+B(Sk−Sj)>0fj+S2j−2ASiSj
LOI_DQS
·
2016-03-14 16:00
bzoj1913: [
Apio2010
]signaling 信号覆盖
WA了好久,发现没开longlong。n个房子选3个有n*(n-1)*(n-2)/6种方案。考虑枚举3个点,超时。考虑对于4个点,有2种位置关系:可构成凸四边形或凹四边形。对于每个凸四边形,过3点可以构成4种圆,有两种可以包围另一个点,对于每个凹四边形,有一种可以包围另一个点。答案就等于(凸四边形个数*2+凹四边形个数)/总方案数。显然凸四边形个数+凹四边形个数=四边形个数=n*(n-1)*(n-
Miao_zc
·
2016-03-02 08:54
bzoj
计算几何
【BZOJ 1911】 [
Apio2010
]特别行动队
DescriptionInputOutputSampleInput4-110-202234SampleOutput9HINT 转移方程f[i]=max(f[j]+a*(h[i]-h[j])^2+b*(h[i]-h[j])+c)//h数组为前缀和如此显然的方程复杂度是O(n^2)的设j>k且j比k右,则有f[j]+a*(h[i]-h[j])^2+b*(h[i]-h[j])+c>f[k]+a*(h[i
抬头仰望浮云飘过
·
2016-02-16 06:00
[BZOJ1913][
Apio2010
]signaling 信号覆盖
[
Apio2010
]signaling信号覆盖DescriptionInput输入第一行包含一个正整数n,表示房子的总数。接下来有n行,分别表示每一个房子的位置。
hbhcy98
·
2016-02-12 22:00
计算几何
BZOJ 1911: [
Apio2010
]特别行动队 斜率优化dp
1911:[
Apio2010
]特别行动队题目连接:http://www.lydsy.com/JudgeOnline/problem.php?
qscqesze
·
2016-02-03 14:00
BZOJ 1911: [
Apio2010
]特别行动队 斜率优化dp
1911:[
Apio2010
]特别行动队题目连接:http://www.lydsy.com/JudgeOnline/problem.php?
qscqesze
·
2016-02-03 14:00
【bzoj 1911】【
Apio2010
】特别行动队 dp+单调队列斜率优化
1911:[
Apio2010
]特别行动队TimeLimit:4SecMemoryLimit:64MBSubmit:3263Solved:1477[Submit][Status][Discuss]DescriptionInputOutputSampleInput4
ALPS233
·
2016-01-30 21:00
dp
[BZOJ1911] [
Apio2010
]特别行动队
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1911题目大意把连续的人分组,每组[j,k]的价值为a(∑ki=jx[i])2+b∑ki=jx[i]+c询问所有组的价值和的最大值题解dp[i]=max{dp[j]+a∗(sum[i]−sum[j])2+b∗(sum[i]−sum[j])+c}dp[i]=max{dp[j]−2a∗sum[i]s
slongle_amazing
·
2015-12-19 16:00
BZOJ1911(斜率优化DP)
1911:[
Apio2010
]特别行动队TimeLimit: 4Sec MemoryLimit: 64MBSubmit: 3108 Solved: 1398[Submit][Status][Discuss
M_AXSSI
·
2015-12-01 18:00
[
APIO2010
特别行动队]
[关键字]:动态规划 斜率优化 [题目大意]:自己搜吧 //=============================================================================== [分析]:首先写出50分的程序,转移方程是:f[i]=max{f[j]+g(s[j]-s[i])}g()就是那个二次函数。然后将方程变形,设两个策略x、y(0<=x&l
·
2015-11-12 13:51
api
BZOJ 1911: [
Apio2010
]特别行动队(斜率优化+DP)
题目链接 算是斜率优化的经典题吧,公式好像挺好就能推出来,特别注意要long long,写写 居然还超时,托了一段时间,看了AC大神的题解,发现中间处理写搓了,计算的时候要记忆化,各种细节要注意,各种WA和TLE终于完成这个渣代码。。。 还可以把求解时候再优化一下,这样1800+水过了。。。 1 #include <stdio.h> 2 #include <stri
·
2015-11-12 09:08
api
BZOJ 1911 [
Apio2010
]特别行动队(单调队列优化DP)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1911 题意:给定一个数列,将其分成若干段,若某段的和为x则这段的价值为a*x*x+b*x+c。求一种分法使得总价值最大? 思路:设p(x)=a*x*x+b*x+c,s[i]表示前i项和,f[i]=max(f[j]+p(s[]-s[j])),那么对于两个j1,j2,若j1<j2,j
·
2015-11-11 14:18
api
APIO2010
特别行动队bzoj1911
//斜率优化DP #include #include #include #include #include #include #include #include #include #include #include #defineinf1000000000 #defineLLlonglong #definesqr(x)((x)*(x)) #definecheck(j,k,i)((f[j]-f[k]
BPM136
·
2015-08-27 13:00
dp
斜率优化——
apio2010
特别行动队
这是我写的第二个斜率优化。。。有了更深的认识发现斜率优化很神奇,加一个斜率和单调队列就可以了发现是斜率优化重点是找到f[i]=min(max){f[j]+w[j,k]}这样一个DP方程,然后试着对决策j优于k列式子讨论,作数学变形。发现有一边是dp[]之差比定值[j][k]之差就是斜率。还有要注意斜率可以用slop算出来,这样程序更清晰,条件也比较好看programtt; vari,n,a,b,c
zz_ylolita
·
2015-07-20 23:00
【BZOJ 1913】 [
Apio2010
]signaling 信号覆盖
1913:[
Apio2010
]signaling信号覆盖TimeLimit:20SecMemoryLimit:64MBSubmit:639Solved:255[Submit][Status][Discuss
Regina8023
·
2015-05-07 09:00
OI
bzoj
计数问题
思路题
江峰
【BZOJ 1912】 [
Apio2010
]patrol 巡逻
1912:[
Apio2010
]patrol巡逻TimeLimit:4SecMemoryLimit:64MBSubmit:669Solved:380[Submit][Status][Discuss]DescriptionInput
Regina8023
·
2015-05-07 08:00
OI
bzoj
树的直径
思路题
[
APIO2010
]特别行动队(斜率优化dp)
【题解】设s[i]=x[1]+x[2]+……+x[i]则:f[0]=0 f[i]=max{f[j]+zdl(s[i]-s[j])}(i>0,0=f[k]+a*(s[i]-s[k])^2+b*(s[i]-s[k])+c整理得: f[j]+a*s[j]^2-f[k]-a*s[k]^2>=(2*a*s[i]+b)*(s[j]-s[k]) 设t[i]=f[i]+a*s[i]^2,mi=2*a
cjk_cjk
·
2015-05-06 02:00
斜率优化
apio
【BZOJ1912】【
Apio2010
】巡逻 树上最长链(才不是树的直径呢)
链接:#include intmain() { puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/45062689"); }题解:对于k==0的情况:我们发现遍历一棵树最后回到原点,那么对于所有的边,我们都是走过去,再走回来。答案(n−1 #include #include #include #in
Vmurder
·
2015-04-15 17:00
巡逻
BZOJ1912
Apio2010
树上最长链
[WC 2015复习](五)动态规划
1、利用数据结构优化动态规划(1)[BZOJ1911][
Apio2010
]特别行动队(利用单调队列对DP进行斜率优化)http://www.lydsy.com/JudgeOnline/problem.php
qpswwww
·
2015-01-28 18:00
斜率优化专题4——bzoj 1911: [
Apio2010
] 特别行动队 题解
【原题】1911:[
Apio2010
]特别行动队TimeLimit: 4Sec MemoryLimit: 64MBSubmit: 2134 Solved: 911DescriptionInputOutputSampleInput4
u013724185
·
2014-05-05 22:00
题解
斜率优化
bzoj
上一页
1
2
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他