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
单调栈+单调队列
poj 1821 Fence(dp+
单调队列
优化)
FenceTimeLimit:1000MSMemoryLimit:30000KTotalSubmissions:3485Accepted:1047DescriptionAteamofk(1#include#include#includeusingnamespacestd;intdp[110][16000+50];structperson{intl,p,s;}P[110];intcmp(person
mousehao001
·
2020-08-17 06:33
poj1821 Fence
单调队列
dp
题意:有n个人刷长度为m的墙。对于每个人有3种属性分别为l,s,w,分别表示这个人可以刷墙的长度,这个人如果刷墙则要刷包含s位置的一段区间,每刷1单位长的墙获得的利润。问如何安排这n个人,使得获得总利润尽可能大。思路:设dp[i][j]表示前i个人刷j面墙可获得的最大利润,那么这个状态可由两个转移而来。1.如果第i个人刷墙,那么dp[i][j]=max(dp[i][j],dp[i-1][k]+(j
Excelsior_kereo
·
2020-08-17 06:42
单调队列优化dp
股票交易[
单调队列
优化DP]
传送门我们用f[i][j]表示交易到第i天,手上有j个股票的最大收益对于买入变一下形
单调队列
维护min中的一坨就可以了#include#defineN5005usingnamespacestd;intf
FSYo
·
2020-08-17 06:09
单调队列优化DP
UVALive 3983(
单调队列
优化dp)
链接:点击打开链接题意:有n个垃圾,第i个垃圾坐标为(xi,yi),重量为wi,有一个机器人,要按照编号从小到大的顺序剑气所有的垃圾兵扔进垃圾桶,垃圾桶在源点,每次总重量不能超过C,两点间距离为曼哈顿距离,求出最短的距离和代码:#include#include#include#include#include#includeusingnamespacestd;intq[100005],dp[1000
Stayaccept
·
2020-08-17 06:38
动态规划
---------dp优化
单调队列
优化dp--bzoj1705
传送门暴力的dp是1e9的,是这样一样转移式:f[i][j]=min{f[i−1][k]+∣j−k∣∗c}+(j−a[i])2f[i][j]=min\{f[i-1][k]+|j-k|*c\}+(j-a[i])^2f[i][j]=min{f[i−1][k]+∣j−k∣∗c}+(j−a[i])2然后分类讨论去掉绝对值f[i][j]={min{f[i−1][k]+j∗c−k∗c}+(j−a[i])2j&
..、
·
2020-08-17 06:29
——动态规划——
单调队列
poj1821 Fence
传送门:点击打开链接题意:有K个工人,和长为N的篱笆,现在要给篱笆上色。每个工人坐在Si上,他能刷的最大范围是Li,且必须是一个连续子区间,而且必须过Si,他刷完后能获得Pi钱问如何分配,使得K个工人的总利润最大思路:先设出方程,设dp[i][j]表示前i个工人,前j个篱笆的最大获利那么就有dp[i][j]=max(dp[i-1][j],dp[i][j-1]);dp[i][j]=max(dp[i]
逍遥丶綦
·
2020-08-17 06:29
ACM_DP
ACM_数据结构
单调队列
优化dp
二、dp优化之
单调队列
优化在1D/1D动态规划中,有一种dp,转移方程一般为:dp[i]=min(f[j])+g[i],(l[i]<=j
TS15oi
·
2020-08-17 06:44
笔记
动态规划
单调队列
动态规划专栏
单调队列
优化多重背包
附上计蒜客官方讲解:HDU2191为例#includeusingnamespacestd;intn,m,l,r;intdp[110],q[110],num[110];intmain(){intcs,v,w,c;scanf("%d",&cs);while(cs--){scanf("%d%d",&m,&n);//m表示容量,n表示种类。for(inti=0;im/v)c=m/v;for(intb=0;
Combatting
·
2020-08-17 06:53
动态规划
模板
Vijos1243:生产产品(
单调队列
优化dp)
传送门题意:有n个任务,m个机器,每个机器完成每个任务都有特定的时间,任务必须依次完成,且一个机器只能连续完成l个任务,每次更换机器需要时间k,求完成所有任务的最短时间。(n≤100000,m≤5)题解:首先,sum[i][j]表示第i台机器完成前j项任务所需的时间,f[i][j]表示完成了前i项任务,且第i项任务由第j台机器完成的最小时间,很容易写出转移方程:f[i][j]=minx=i−li−
DZYO
·
2020-08-17 06:26
DP及DP优化
HDU 5945
单调队列
优化DP
比赛时一直以为是个数学题,一直没有想到用优先队列优化DP看来需要好好学一学STL中貌似没有直接对应的,所以用数组模拟队列就?,用空间换时间,比STL要快一些哦#include#include#include#include#includeusingnamespacestd;intT,x,k,t,l,r;intdp[1000100],q[1000100];intmain(){scanf("%d",&
!.
·
2020-08-17 06:06
poj1821
单调队列
优化
//poj1821#include#include#include#include#include#defineINF0x7fffffffusingnamespacestd;structnode{intL,P,S;}a[222];boolcmp(nodex,nodey){returnx.Sq;intmain(){while(scanf("%d%d",&n,&k)!=EOF){for(inti=1;
SimpleLifeT_T
·
2020-08-17 06:14
动态规划
算法解析之感想---
单调队列
优化多重背包思路
这时,可以用
单调队列
优化,时间复杂度降为O(NM)。其优化思路是将当前重量限制取余物品重量数得到余数相同的归为一类,因此可以分为[0,V[i]-1]供V[i]类,其中对于每一
qiusuo800
·
2020-08-17 05:42
C++
动态规划的
单调队列
优化(含多重背包)
什么是
单调队列
单调队列
就是元素单调的队列,譬如一个队列中的元素为1,2,3,4,5,6,单调递增,这就是一个
单调队列
。咱们先看一道
单调队列
的模板题:poj2823/洛谷P1886怎么维护
单调队列
呢?
litble
·
2020-08-17 05:16
队列
动态规划
[DP/树形DP/
单调队列
优化]Exercise Week13 A~E
[
单调队列
优化DP]神秘任务3题意样例样例输入:样例输出:思路总结代码A.[思考题]神秘任务1题意神秘人给了两个数字,分别表示n和k,并要求TT给
林深见海
·
2020-08-17 05:15
csp
POJ 1821 Fence(
单调队列
优化)
【题意】K个人对N块木板涂色,每个人初始站在一块木板前(不重复),每人最多只能涂包含所站木板的连续l个木板或一个木板也不涂。给出每人最多涂的木块数l,涂一快木板的工钱p,站的木板s。求这群人最多共获得多少工钱。【分析】dp[i][j]表示前i个人对前j块木板操作的最大收益。核心状态转移方程:dp[i][j]=max(dp[i][j-1],dp[i-1][k]+P[i].p*(j-k),dp[i-1
just_sort
·
2020-08-17 05:56
ACM/ICPC_POJ
ACM/ICPC单调队列
背包模板(01,完全,多重背包的二进制优化和
单调队列
优化
背包问题1,01背包背包问题的基础,总体积为V的背包,有n件体积v【i】,价值w【i】的物品,求能装物品的最大总价值voidzero(intv,intw){for(intj=V;j>=v;j--){dp[j]=max(dp[j],dp[j-v]+w);}return;}2.完全背包,每件物品能选无数个voidcomplete(intv,intw){for(intj=v;j=k*v[i];j--){
jerans
·
2020-08-17 05:18
背包问题
hdu 3530
单调队列
优化DP
AC代码如下:#include#include#include#includeusingnamespacestd;intq1[211000],pos1[211000],head1,tail1;intq2[211000],pos2[211000],head2,tail2;intans,now;intN,M,K;intnum[211000];intmain(){while(scanf("%d%d%d"
team79
·
2020-08-17 05:02
动态规划
单调队列+斜率优化DP
环路运输(环形结构上的动规并
单调队列
优化)
题目:在一条环形公路旁均匀地分布着N座仓库,编号为1~N,编号为i的仓库与编号为j的仓库之间的距离定义为dist(i,j)=min(|i-j|,N-|i-j|),也就是逆时针或顺时针从i到j中较近的一种。每座仓库都存有货物,其中编号为i的仓库库存量为Ai。在i和j两座仓库之间运送货物需要的代价为Ai+Aj+dist(i,j)。求在哪两座仓库之间运送货物需要的代价最大。1≤N≤106,1=N/2,根
sunday_soft
·
2020-08-17 05:01
动态规划
dp
单调队列
优化几道题
https://acm.uestc.edu.cn/problem/wo-yao-chang-gao/descriptionhttp://acm.hdu.edu.cn/showproblem.php?pid=3401http://acm.hdu.edu.cn/showproblem.php?pid=2191https://www.lydsy.com/JudgeOnline/problem.php?i
hxc2101
·
2020-08-17 05:30
动态规划
poj 1821(
单调队列
优化dp)
解题思路:这是一道
单调队列
优化dp的问题,首先状态dp[i][j
hexianhao
·
2020-08-17 05:20
dp
单调队列
&
单调队列
优化DP & 题目推荐
来看一道题扫描题目描述有一个1∗n的矩阵,有n个正整数。现在给你一个可以盖住连续的k的数的木板。一开始木板盖住了矩阵的第1∼k个数,每次将木板向右移动一个单位,直到右端与第n个数重合。每次移动前输出被覆盖住的最大的数是多少。输入格式第一行两个数,n,k,表示共有n个数,木板可以盖住k个数。第二行n个数,表示矩阵中的元素。输出格式共n−k+1行,每行一个正整数。第i行表示第i∼i+k−1个数中最大值
NephrenRuqInsania
·
2020-08-17 05:18
#
单调队列优化dp
[GXOI/GZOI2019]与或和(位运算,
单调栈
)
题目链接懒得放了。题目大意懒得写了。省选原题哪有找不到的……说实话,其实这题是个大水题,被我十秒钟内口胡出来了。首先位运算除了拆位还能干啥?以下以与为例,或是差不多的。我们考虑有多少个子矩阵会对这一位答案产生贡献,其实就是全$1$的子矩阵。问题转化为计算全$1$子矩阵的个数。这是一个简单题。考虑枚举右下角,发现包括这个右下角的子矩阵肯定长这样:(画的比较丑,意会就好了)也就是高度单调递增。高度可以
angzuo8655
·
2020-08-17 05:43
codevs5429 多重背包【多重背包+
单调队列
】
5429多重背包时间限制:1s空间限制:256000KB题目等级:钻石Diamond题目描述Description你有一个容量为M的背包,和N种物品。每种物品都有三个属性,vi,wi,与ci,分别表示这种物品的体积、价值和件数。你的任务是,从这些所给物品中,选出若干件,其体积之和不能超过背包容量,并且使所选物品的权值的和最大。输入描述InputDescription第一行两个整数N,M接下来N行每
无边星空
·
2020-08-17 05:15
背包问题
单调队列
NOIP模拟赛 军训(二分答案+
单调队列
优化DP)
NOIP模拟赛军训问题描述:HYSBZ开学了!今年HYSBZ有n个男生来上学,学号为1…n,每个学生都必须参加军训。在这种比较堕落的学校里,每个男生都会有Gi个女朋友,而且每个人都会有一个欠扁值Hi。学校为了保证军训时教官不会因为学生们都是人生赢家或者是太欠扁而发生打架事故,所以要把学生们分班,并做出了如下要求:1.分班必须按照学号顺序来,即不能在一个班上出现学号不连续的情况。2.每个学生必须要被
The_useless
·
2020-08-17 05:09
基础算法-二分
优化-单调队列优化
模拟赛
长度不超过m的最大连续子序列(dp +
单调队列
)
给你n个数,然后让你求最大连续子序列的和,限制条件是连续子序列的长度不超过m。n,m#include#include#include#include#defineLLlonglongusingnamespacestd;LLsum[1000010];listq;intmain(void){intn,m,i,j;while(scanf("%d%d",&n,&m)==2){sum[0]=0;for(i=
SSimpLe_Y
·
2020-08-17 05:33
算法小讲堂
STL
弱鸡的DP之路
多重背包-
单调队列
优化
/*经典的滑动窗口问题(
单调队列
问题)滑动窗口未优化:(n-k+1)(k-1)=nk--数值之间重复比较滑动窗口优化:(n)=n--数值之间比较的时候直接排除,避免了重复比较的可能将所有的m%v余数相同的归为一组
Mr_Poseidon
·
2020-08-17 05:54
POJ2373-Dividing the Path【
单调队列
优化dp】
正题题目链接:http://poj.org/problem?id=2373题目大意长度为L,要求每个区域都被洒水器覆盖,而且在每只奶牛的喜爱区域只能由一个洒水器覆盖,洒水器必须放在整数点,喷洒半径只能在a∼ba\simba∼b区间。解题思路我们考虑dp,我可以先想O(n2)O(n^2)O(n2)的。fi=min{fj}+1(i−2b≤j≤i−2a)f_i=min\{f_j\}+1\\\(i-2b≤
ssl_wyc
·
2020-08-17 05:54
dp
数据结构
【HDU3401】Trade-
单调队列
优化DP
测试地址:Trade题目大意:给定连续T天的股市情况,包含四个参数api,bpi,asi,bsi,表示第i天买价为api一股,卖价为bpi一股,当天最多能买asi股,最多能卖bsi股,一天之内只能在买和卖中选择一个,另外限制任何一天手中股票不能超过maxp股,如果在一天进行了交易(买或卖),那么接下来W天都不能交易。一开始有无限的本金,但是没有股票,求最后最多能赚多少钱。做法:每一天的操作无非就是
Maxwei_wzj
·
2020-08-17 05:20
数据结构-单调队列
poj 1821 dp+
单调队列
FenceTimeLimit:1000MSMemoryLimit:30000KTotalSubmissions:3858Accepted:1176DescriptionAteamofk(1#include#include#include#includeusingnamespacestd;#definemaxn16001#definemaxk101typedeflonglongll;intn,k;l
HuanTongH
·
2020-08-17 05:07
动态规划
数据结构
未理解
单调队列
优化DP能到什么程度
想了一早上
单调队列
优化DP,总觉得不能优化到哪里去,又从来没有做过这种需要用
单调队列
优化的DP,于是自己用手模拟了一下实现过程,瞬间就明白了
单调队列
优化DP,这个DP的转移方程应该具有的性质。
Ginray
·
2020-08-17 05:05
算法
[POJ1821] [Romania2002] Fence [
单调队列
][dp]
[Link\frak{Link}Link]由初状态0\frak{0}0转移到最大化价值。典型的最优化问题。范围比较复杂,初步感觉是Θ(nk)\frak{\Theta(n\mathcal{k})}Θ(nk)。先把工人按照位置排序。把k\mathcal{k}k作第一维、n\frak{n}n作第二维如何?那么第一维枚举当前是第几个工人;第二维枚举上一个工人刷到哪。f[i][j]\frak{f[i][j]
*éphia
·
2020-08-17 05:02
dp
dp的斜率优化与
单调队列
优化
单调队列
优化:就是用一个
单调队列
优化dp的转移,使转移降一维。
Demon_Rieman
·
2020-08-17 05:28
dp
单调队列
&
单调栈
单调队列
例题:Poj2823给定一个数列,从左至右输出每个长度为m的数列段内的最小数和最大数。
weixin_30685029
·
2020-08-17 04:57
浅谈
单调队列
优化dp
单调队列
,即单调的队列。有时用于优化1D/1D方程。
weixin_30566063
·
2020-08-17 04:26
poj 1821
单调队列
优化dp详解
/*poj1821*******************************************************************
单调队列
优化;******************
jie1634302805
·
2020-08-17 04:29
c++
单调队列
优化多重背包详解
多重背包基本模型如下:给定N种物品,其中第i种物品的体积为Vi,价值为Wi,并且有Ci个。有一容积为M的背包,要求选择若干个物品放入背包,使得物品总体积不超过M的前提下,物品价值总和最大。输入格式第一行两个整数,N,M,用空格隔开,分别表示物品种数和背包容积。接下来有N行,每行三个整数Vi,Wi,Ci,用空格隔开,分别表示第i种物品的体积、价值和数量。输出格式输出一个整数,表示最大价值。输入样例4
sunday_soft
·
2020-08-17 04:57
动态规划
单调队列
及
单调队列
优化DP详解
单调队列
详解博客三个步骤:判断队头决策与i的距离是否超出M的范围,若超出则出队此时队头就是右端点为i时,左端点j的最优选择不断删除队尾决策,直到队尾的S值小于S[i]。然后把i作为一个新的决策入队。
DrumWashingMachine
·
2020-08-17 04:05
算法
Lipshitz Sequence
单调栈
题意:给n,q和n个数,q个询问每个询问有l,r代表一个区间[l,r],问这个区间包含的所有子区间的L(h)值,L(h)代表区间内任选两个位置i#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;#definelowbit(x)(x&(-x
humeay
·
2020-08-17 01:22
POJ-3415-Common Substrings(后缀数组+
单调栈
)
公共子串可以通过height求,中间分隔连接两串,将height[i]>=k进行分组,对于一组内的height[i],且sa[i]属于a串,需要找到ji]-k),采用
单调栈
维护一个栈顶最小的height
EIKY
·
2020-08-17 01:21
POJ
字符串
区区区区间间间(
单调栈
)题解
这道题用
单调栈
解决了一个区间的所有子区间最值之和的问题,以后如果碰到类试问题可以直接套用这个模板的题目题解不是我不想写,因为我觉得自己写的没有人家好单纯记录一下一篇很详细的题解如果你看完了这篇题解,我就强调一点吧
AGNING
·
2020-08-16 18:05
2020五校联盟H-虚假的防AK
原题是CFdiv1的一道B题,虚假2000分,其实只是个
单调栈
板子。题意:先求在一个任意连续区间里的最大值和次大值,求二者异或值。然后最终输出所有异或值的最大值。
蔡瑞阳
·
2020-08-16 12:20
单调栈
滑动窗口的最大值
单调队列
给定一个数组nums和滑动窗口的大小k,请找出所有滑动窗口里的最大值。示例:输入:nums=[1,3,-1,-3,5,3,6,7],和k=3输出:[3,3,5,5,6,7]解释:滑动窗口的位置最大值--------------------[13-1]-3536731[3-1-3]5367313[-1-35]367513-1[-353]67513-1-3[536]7613-1-35[367]7解题思
口袋里的星星
·
2020-08-16 12:13
leetcode
数据结构
算法练习--队列的最大值__
单调队列
题目:请定义一个队列并实现函数max_value得到队列里的最大值,要求函数max_value、push_back和pop_front的均摊时间复杂度都是O(1)。若队列为空,pop_front和max_value需要返回-1示例:输入:["MaxQueue","push_back","push_back","max_value","pop_front","max_value"][[],[1],[
喝茶ni
·
2020-08-16 11:00
java算法练习
最小栈
单调栈
一个正常的栈,一个最小栈栈顶是当前栈的最小元素push的时候如果push的x比最小栈顶的小就pushx否则吧栈顶再push一遍#include#includeusingnamespacestd;classMinStack{public:/**initializeyourdatastructurehere.*/stackst;stackmst;MinStack(){;}voidpush(intx){
DUT_LYH
·
2020-08-16 05:36
#
Leetcode
算法竞赛知识合集 目录(博客中转站)
基本算法—前缀和与差分0x04.基本算法—二分和三分0x05.基本算法-排序0x06.基本算法—倍增0x07.基本算法—贪心0x08.基本算法—总结与练习0x10.基本数据结构0x11.基本数据结构—栈/
单调栈
繁凡さん
·
2020-08-16 03:11
【算法竞赛学习笔记】
【算法总结】合集
leetcode刷题(81)——85. 最大矩形
:[["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:6二、思路——
单调栈
利用
TheManba
·
2020-08-16 03:06
leetcode刷题
Leetcode刷题总结--
单调栈
Leetcode刷题总结
单调栈
从这个数据结构的名字就可以看到,数据在栈中是单调的,栈顶永远都是最大/最小值。那么,这样一个数据结构有什么用呢?这里作者先把结论说出来,然后举一个例子说明。
Q都Q歪来
·
2020-08-16 01:42
Leetcode刷题总结
牛客 最大最小(
单调栈
,区间最大大于最小两倍)
思路:首先必须明确
单调栈
的最主要的作用,就是找到每个数左边右边第一个小于大于他的数,如果配上倍增或者二分可以找到小于大于他的第k大数。所有用
单调栈
的题目都得思考怎么利用这个性质来套题目。
tomjobs
·
2020-08-15 15:00
#
单调栈
#
其他比赛题目
LuoguP2827/UOJ264[NOIP2016D2T2]蚯蚓 解题报告【
单调队列
】
题目描述本题中,我们将用符号⌊c⌋表示对c向下取整,例如:⌊3.0⌋=⌊3.1⌋=⌊3.9⌋=3⌊3.0⌋=⌊3.1⌋=⌊3.9⌋=3。蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓。蛐蛐国里现在共有n只蚯蚓(n为正整数)。每只蚯蚓拥有长度,我们设第i只蚯蚓的长度为ai(i=1,2,...,n),并保证所有的长度都是非负整数(即:可能存在长度为0的蚯
theljt
·
2020-08-15 15:51
单个题解
单调队列
优化dp--bzoj5185: [Usaco2018 Jan]Lifeguards
传送门luoguluoguluogu上据说有一道这个题的弱化版,把删kkk个改成了删111个,那个大概线段树之类的随便做一下就好了这道题可以先把包含的都去掉,所有线段就是相交或者不相交的了,然后考虑用dpdpdp解决,设f[i][j]f[i][j]f[i][j]表示到第iii个线段,iii必须留下,之前删掉了jjj条线段的最长覆盖长度,则f[i][j]=f[x][j−(i−x−1)]+ri−max
..、
·
2020-08-15 15:39
单调队列优化DP
上一页
36
37
38
39
40
41
42
43
下一页
按字母分类:
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
其他