放一手原题 题解: 第一次写(抄)斜率优化,心里还是有点小激动的.讲一下怎么实现的! 首先我们可以考虑一个朴素的dp:DP[i]表示前i个数字的最少花费,显然我们有一个转移方程 DP[i]=min{DP[j]+M+(sum[i]-sum[j])^2} 但是N^2肯定会超时,我们考虑优化他 假设有k<j<i,如果令j对i的贡献比k好 显然我们有这样的式子 DP[j]+M+(sum[i]-sum[j])^2 < DP[k]+M+(sum[i]-sum[j])^2 把平方打开之后移项 可以得到…
题目传送门 跳房子 题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 n 个格子,这些格子都在同一条直线上.每个格子内有一个数字(整数),表示到达这个 格子能得到的分数.玩家第一次从起点开始向右跳,跳到起点右侧的一个格子内.第二次再从当前位置继续向右跳,依此类推.规则规定: 玩家每次都必须跳到当前位置右侧的一个格子内.玩家可以在任意时刻结束游戏,获得的分数为曾经到达过的格子中的数字之和. 现在小…
1.BestCoder Round #89 2.总结:4个题,只能做A.B,全都靠hack上分.. 01  HDU 5944   水 1.题意:一个字符串,求有多少组字符y,r,x的下标能组成等比数列. 2.总结:有个坑,y,r,x顺序组公比q>1,也可反着来x,r,y顺序组. #include<iostream> #include<cstring> #include<cmath> #include<queue> #include<algorit…
easy 题目链接 & hard 题目链接 给出一张 \(n \times m\) 的矩阵,每个格子上面有一个数,你要在每行选出一个点 \((i,t)\),并覆盖左上角为 \((i,t)\),右下角为 \((\min(i+1,n),\min(t+k-1,m))\) 的矩形.求被覆盖的格子上数的和的最大值. easy 数据范围:\(1 \leq n \leq 50\),\(1 \leq m \leq 2 \times 10^4\),\(1 \leq k \leq 20\). hard 数据范围:\…
链接:https://ac.nowcoder.com/acm/problem/14553来源:牛客网 题目描述 小明很喜欢打游戏,现在已知一个新英雄即将推出,他同样拥有四个技能,其中三个小技能的释放时间和固定的伤害值为: 1.乌鸦坐飞机 释放时间:x 固定伤害值:a 2.蜘蛛吃耳屎 释放时间:y 固定伤害值:b 3.饿狼前进  释放时间:z 固定伤害值:c 他还有一个大招,其释放的时间是一个区间[L,R],可以在区间内任意时间点释放出技能,其如果在L+i时刻释放技能,其能够打出的伤害值为:tem…
单调队列优化 眼界极窄的ZZ之前甚至不会单调队列--(好丢人啊) 单调队列优化的常见情景: 转移可以转化成只需要确定一个维度,而且这个维度的取值范围在某个区间里 修剪草坪 这个题学长讲的好像是另外一个思路,但是码的时候不知不觉就偏到另一个思路里去了--改天也打打试试 需要注意的: 这题中如果有多个满足最大值,我们应该取最靠前的,所以在弹队的时候用的是> 这个题中单调队列维护的是\(dp_{j,0}-pre_j(i-k-1\leq j \leq i)\),这里的\(j\)是入队时的下标 精华: f…
前言 单调队列优化\(DP\)应该还算是比较简单容易理解的吧,像它的升级版斜率优化\(DP\)就显得复杂了许多. 基本式子 单调队列优化\(DP\)的一般式子其实也非常简单: \[f_i=max_{j=max(i-t,1)}^{i-1}(s(i)+g(j))\] 其中\(t\)是一个常数,\(s(i)\)是一个只与\(i\)有关的函数,\(g(j)\)是一个只与\(j\)有关的函数,式子中的\(max\)其实也可以替换成\(min\),但这里以\(max\)为例. 由于\(s(i)\)只与\(i…
描述 输入一个长度为n的整数序列,从中找出一段不超过M的连续子序列,使得整个序列的和最大. 例如 1,-3,5,1,-2,3 当m=4时,S=5+1-2+3=7 当m=2或m=3时,S=5+1=6 输入格式 第一行两个数n,m 第二行有n个数,要求在n个数找到最大子序和 输出格式 一个数,数出他们的最大子序和 测试样例1 输入 6 4  1 -3 5 1 -2 3 输出 7 备注 数据范围: 100%满足n,m<=300000 题解 我们由题设f[i]为i位置最大子段和,得到状态转移方程f[i]…
题目链接:https://www.luogu.org/contestnew/show/4468 题目大意:跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 n 个格子,这些格子都在同一条直线上.每个格子内有一个数字( 整数),表示到达这个格子能得到的分数.玩家第一次从起点开始向右跳, 跳到起点右侧的一个格子内.第二次再从当前位置继续向右跳,依此类推.规则规定: 玩家每次都必须跳到当前位置右侧的一个格子内.…
题目链接 首先这题可以肯定的是朴素DP秒出.然后单调队列优化因为没接触过所以不会emmm 而且脑补没补出来 坐等四月省选倒数第一emmm 心态爆炸,偷懒放题解链接 #include<cstdio> #include<cstring> #include<cctype> #include<cstdlib> #include<algorithm> #define maxn 2020 #define INF 0x7fffffff using namesp…