描述 某个夜晚,Bob将他弹奏的钢琴曲录下来发给Jack,Jack感动之余决定用吉他为他伴奏. 我们可以用一个整数表示一个音符的音高,并可认为Bob弹奏的曲子是由3N个整数构成的一个序列.其中每个整数的取值范围是[-200, 200]. Jack共弹奏 N 个和弦,每个和弦由三个音符组成.Jack可以自行决定和弦的第一个音符,其后的两个音符由第一个音符与和弦种类所决定.Jack共弹奏两种和弦:大三和弦与小三和弦.假设Jack决定某个和弦的第一个音符是 x,那么对于大三和弦,余下两个音符依序是 x…
题目描述 Yasuo 和Riven对一排\(n\)个假人开始练习.斩杀第\(i\)个假人会得到\(c_i\)个精粹.双方轮流出招,他们在练习中互相学习,所以他们的剑术越来越强.基于对方上一次斩杀的假人数量\(k\),可以斩杀掉剩余假人中位置最靠前的\([1,2k]\)范围内数量的连续假人.最初Yasuo先出招,斩杀\(1\)或\(2\)个假人.Yasuo偷偷把你叫到一边,问在双方都采取最优策略的情况下, 他最多能够获取多少精粹. 输入 第一行一个正整数\(n\),表示假人的个数. 接下来\(n\…
3437: 小P的牧场 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 705  Solved: 404[Submit][Status][Discuss] Description 背景 小P是个特么喜欢玩MC的孩纸... 描述 小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制站控制的牧场是它所在的牧场一直到它西边第一个控制…
HDU3480_区间DP平行四边形优化 做到现在能一眼看出来是区间DP的问题了 也能够知道dp[i][j]表示前  i  个节点被分为  j  个区间所取得的最优值的情况 cost[i][j]表示从i到j元素区间中的值,这里可以直接排序后简单求出——也就是我们的代价函数 这样其实就能够做出来了,但是空间复杂度是n3入门的题能过,普通点的都会考察你一下斜率DP的优化和四边形不等式的优化.目前我主要就懂了平行四边形的优化 首先你要确保dp和cost这两个都满足四边形不等式这个前面有过证明的博客这里就…
写一写要讲什么免得忘记了.DP的优化. 大概围绕着"是什么","有什么用","怎么用"三个方面讲. 主要是<算法竞赛入门经典>里的题目讲解,但是有些过于简单的删去了,添加了一些不怎么简单的省选题目作为例子 这里的DP优化都是涉及到O(nk)到O(nk-1)方法比较巧妙也有用到数学里面的定理之类. 所以秉着由易到难的原则,安排内容如下: 专题1:动态规划基础知识和计数DP.数位DP(几大类DP的类型介绍) 专题2:DP的简单优化(稍微提…
[学习笔记]wqs二分/DP凸优化 从一个经典问题谈起: 有一个长度为 \(n\) 的序列 \(a\),要求找出恰好 \(k\) 个不相交的连续子序列,使得这 \(k\) 个序列的和最大 \(1 \leq k \leq n \leq 10^5, -10^9 \leq a_i \leq 10^9\) 先假装都会 \(1 \leq k \leq n \leq 1000\) 的 \(dp\) 做法以及 \(k = 1\) 的子问题 实际上这个问题还可以是个费用流模型: 对于序列中每一个点 \(i\)…
http://www.lydsy.com/JudgeOnline/problem.php?id=1096 首先得到dp方程(我竟然自己都每推出了QAQ)$$d[i]=min\{d[j]+cost(j+1,i)\}+c[i]$$其中$d[i]$是前i个且在i建仓库的最小费用,$cost(j+1,i)$是将j+1-i的东西全都运到i的费用 而我们先考虑cost怎么求,orz,好神的前缀和,首先维护sum[i]表示1-i的物品,则j-i的东西从j全都运到i需要$$(sum[i]-sum[j]) \ti…
推荐博客 推荐博客 数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数.所谓数位dp,字面意思就是在数位上进行dp咯.数位还算是比较好听的名字,数位的含义:一个数有个位.十位.百位.千位......数的每一位就是数位啦!之所以要引入数位的概念完全就是为了dp.数位dp的实质就是换一种暴力枚举的方式,使得新的枚举方式满足dp的性质,然后记忆化就可以了. 两种不同的枚举:对于一个求区间[le,ri]满足条件数的个数,最简单的暴力如下: for(int i=le;i…
背景:从两张有关联的表查询数据,A表数据量1400万,B表数据量8000万.A与B通过ID逻辑关联,没有实际的外键.B表是后来扩展出来的. 问题:根据某个ID查询时超时,运行时跑不出结果. 原因:使用一个or条件,条件里面有一个是A.ID=B.ID 简单优化:将or条件拆开,使用union all:将之前使用表变量的部分换成了临时表:对排序的字段加上了索引 结果:在50ms内能够查询出结果,这个与之前的超时简直不能相比. 感想:感谢DBA mm的帮助,让我有了这样的体验,不实际的处理(哪怕很简单…
4518: [Sdoi2016]征途 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 230  Solved: 156[Submit][Status][Discuss] Description Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除第m天外,每一天晚上Pine都必须在休息站过夜.所以,一段路必须在同一天中走完. Pine希望每一天走的路长度尽可能相近,所以他…