自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yanga11ang的博客

我有一个梦想,懒到极致,从繁杂中解脱,寻求心灵的富足

  • 博客(14)
  • 收藏
  • 关注

原创 四边形不等式优化dp

关于四边形不等式优化dp的一点理解 我其实应该先学好几何证明 orz 前导算法 区间dp 基础几何证明算法干嘛 当区间dp 代价函数满足fun(i,j)+fun(i',j')<fun(i',j)+fun(i,j')时 通过减少 类区间dp 的决策区间,将其O(n^3) 的复杂度化为O(n^2)算法思路 区间合并时候,如果代价函数满足fun(i,j)+fun(i',j')<fun(i',j)

2017-07-23 11:15:43 372

原创 石子合并 nyoj737 四边形优化

题意:有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,并将新的一堆石子数记为该次合并的代价。求最小代价。思路我们假设dp[i][j]是从i到j区间的最优解。 我们想知道,能否像建塔一样,知道了底层的就可以建立高层的。 这里我们以 j-i 的值为dp分层,也就是分为区间长度为1的,2的,3的…n的。 一个问题摆在面前,能否用低层次的

2017-07-23 10:21:52 239

原创 (初识)斜率dp

关于斜率dp的一点理解 我其实应该先学好几何 orz 前导算法 基础dp 单调队列 数形结合思想算法干嘛 是动态规划问题中的一种优化方案, 当满足 时可以利用斜率优化,变化O(n)为O(1)算法思路 本算法是一种数形结合的优化方法, 可以考虑为 随着i增加 i的待考查区间增大。 如果满足上述斜率等式 , 易发现,待考察区间有许多无用值 将之去掉,待考察区间 可能变为斜率递增的单调

2017-07-21 19:58:16 246

原创 HDU - 3507 Print Article 斜率dp

题意 打印一篇长度为n的文章,求最小代价 其中代价的计算公式为:一行元素权值加和的平方加上换行的代价,即下图公式: 思路 很容易想到用dp 状态转移也好写 dp[i]=min(dp[j]+(sum[i]-sum[j])^2+m); 然后随便的算一下复杂度 O(n^2) 再看一下数据范围 (0 ≤ n ≤ 500000, 0 ≤ M ≤ 1000) GG…….. 所幸我们可以优化

2017-07-21 17:35:25 204

原创 插头dp

关于插头dp的一点理解如果是自学的话,有福了,我懵逼了好几天 但可以看看这个PPT 在看看代码应该可以加深理解。练习题一,我写了一点注释,希望有帮助前导算法 状态压缩dp 位运算算法干嘛 求哈密顿回路 条数算法思路 定义了两个东西 (PPT中图文相结合)1.插头:一个格子某个方向的插头存在表示这个格子在这个方向与相邻格子相连.2.轮廓线:已决策格子和未决策格子的分界线我们用状态压缩的

2017-07-20 16:31:21 357

原创 HDU - 1693 Eat the Trees 插头dp

题意 在一张n*m的地图中,1表示有树,0表示没有树(也不能走) DOTA中有一个英雄任务是去吃树(打防御塔)。问,他吃完所有树,并且相同地方不走两次的回路有几条(即哈密顿回路)。思路 求哈夫曼回路,用插头dp 如果不知道插头dp,可以看看这里参考代码#include<cstdio>#include<algorithm>#include<iostream>#include<cstrin

2017-07-20 16:07:11 226

原创 状态压缩dp

关于状态压缩dp的一点理解练几道题就明白前导算法 最少掌握二维的dp 进制转换 数论基础算法干嘛 可以求解方案数啊,减少维数,本质还是dp求解算法思路 若果一道dp题,发现确定状态的参数很多,并且他们在某种意义下,是相近的。 这时,可以将其编号,然后用进制的方式压缩到成一个参数,进而减少dp的维数。比如原先空间是dp[100][2][2][2][2][2] 可以变成dp[100][1<

2017-07-19 16:49:15 417

原创 Corn Fields POJ - 3254 状态压缩dp

题意 一个m*n的矩阵里,每个位置有两种状态,可以种牧草用1表示,不能种用0表示。在这块牧场种牧草,要求两个相邻的方格不能同时种牧草(上下左右)。问有多少种种植方案(一块也不种也是一种方案)思路 输出里写着modulo 100,000,000 想都不想就dp, 每一行的状态很多,我们可以用状态压缩说明,变成01二进制 然后dp[i][j]=sum(不冲突的dp[i-1][k]) 其中dp第

2017-07-19 14:57:36 227

原创 区间dp

关于区间dp的理解一直不知道这玩意,研究了一下才发现学长原先讲过(跑 )前导算法 dp算法干嘛: 这种算法可以解决一类问题,这类问题,大区间的最优解,可以由构成它的小区间的最优解组合生成。算法思路: 既然大区间的答案,可以由小区间,组合生成, 那我们就像搭积木一样从小区间,一直求到大区间。 区间越小数目越多,我们需要一一求解所有的区间,因为,每一个区间都有可能是更大区间的基石。 区间合并

2017-07-18 20:52:39 313

原创 石子合并 nyoj737 区间dp

先说一下题意: 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,并将新的一堆石子数记为该次合并的代价。求最小代价。思路 我们假设dp[i][j]是从i到j区间的最优解。 我们想知道,能否像建塔一样,直到了底层的就可以建立高层的。 这里我们以 j-i 的值为dp分层,也就是分为区间长度为1的,2的,3的…n的。 一个问题摆在面前

2017-07-18 19:09:05 338

原创 Light Bulb ZOJ - 3203 一道三分查找的题

题意如下: 有一个高H的灯,在灯的右边D距离有一堵墙,在灯和墙之间有一个高h人,h小于H。问人的影子最多有多长。如下图求L高中物理题,相信学霸可以用公式退出来,不过也会挺费事。我们用三分查找可以轻松求解。首先我们要证明影子随着人向右走,是一个先增后减的单峰函数。 这个是常识 0.0 。大致推理一下,如果没有墙 ,影子是越来越长的,有了墙,使得本该极长的影子,有了上限人的高度。 可能服从单峰函数,当

2017-07-18 09:34:25 305

原创 分块算法

感觉分块是一种很蛋疼的算法,但据说有的时候很好用 ( 分块算法可以维护一些线段树维护不了的东西,例如单调队列等,线段树能维护的东西必须能够进行信息合并,而分块则不需要 )。分块算法很多时候会把复杂度优化一个O( )。优化方式如下 一个规模为n 的问题, 我们将其变得有序, 令 x= 那么 我们可以将其划分为 块区域,分别为 [1 x] [x+1 2x] [2x+1 3x] ……[kx n

2017-07-17 14:36:27 2502

原创 单调栈、双端队列、单调队列

它们分别是栈和队列的变形,在某些时候会具有极大地价值。单调栈之所以被称作单调栈 是因为栈里面的元素是单调的。即,从栈顶到栈底是严格单调递增或递减的。 想要构成单调栈,对于入栈操作就需要作出一定的限制。 这里以单调递增栈为例进行说明:新增一个元素 需要将比他小的元素都出栈后才能加入。 例如 某次需要加入栈的元素依次为: 3 4 8 1 6 4 5 9 3进栈 (3) 3出栈 4进栈 (4)

2017-07-15 17:03:40 954 1

原创 三分查找

关于三分的一些理解一些需要知道的东西:定义: y = f(x) ; x 的取值 可以是离散的也可以是连续的 。y与x 在直角坐标系上的图像是单峰的,即只有一个最大值或最小值。三分查找的目的是: 给定区间 [L R] 求区间最值(凸的最大值 凹的最小值)在三分查找中用到的辅助变量有:l :三分查找的一个下界 ; r :三分查找的一个上界 ; mid : 上界和下界的中点 即 (l+r)/

2017-07-15 12:30:16 341

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除