随笔分类 -  基础算法——DP

十分常用的算法,大致目录如下: 普通DP,记忆化搜索(实质是DP,但在实现方式上与普通DP各有优劣),状压DP,数位DP,树形DP,区间DP,概率/期望DP,数学DP,插头DP,最短路DP。。。。。。。。 各类常见DP优化如下: 单调队列优化,斜率优化,决策单调性优化(其实上面两种某种意义上也包括在这里面)
摘要:第一次写这种二分来优化决策单调性的问题。。。。 调了好久,,,各种细节问题 显然有DP方程: $f[i]=min(f[j] + qpow(abs(sum[i] - sum[j] - L - 1)));$ 其中f[i]代表到了第i个句子的最小答案 qpow用于处理^p sum为前缀和 (同时为了处理句 阅读全文
posted @ 2018-04-26 20:08 ww3113306 阅读(257) 评论(0) 推荐(0)
摘要:斜率优化DP先考虑朴素DP方程,f[i][k]代表第k个厂建在i棵树那里的最小代价,最后答案为f[n+1][3];f[i][k]=min(f[j][k-1] + 把j+1~i的树都运到i的代价)首先注意到“把j+1~i的树都运到i的代价”不太方便表达,每次都暴力计算显然是无法承受的,于是考虑前缀和优 阅读全文
posted @ 2018-04-22 13:49 ww3113306 阅读(302) 评论(0) 推荐(0)
摘要:感觉是一道很妙的树形DP题,充分利用到了树的性质(虽然说点分治也可以做,,,,但是本蒟蒻不会啊) 然而某Twilight_Sx大佬表示这道题真的非常水,,,本蒟蒻也只能瑟瑟发抖了 本蒟蒻表示还是要经过一些思考的吧 虽然说是要获取概率,但是要输出分数形式,显然直接算可能获胜的次数再除所有可能,并且用g 阅读全文
posted @ 2018-04-09 22:21 ww3113306 阅读(182) 评论(0) 推荐(0)
摘要:DP,递推,组合数 其实相当于就是一个递推推式子,然后要用到一点组合数的知识 一道很妙的题,因为不能互相攻击,所以任意行列不能有超过两个炮 首先令f[i][j][k]代表前i行,有j列为一个炮,有k列为两个炮的方案 那么有如下转移: 1,这行不放炮,add+=f[i-1][j][k]; 2,放一个炮 阅读全文
posted @ 2018-04-09 22:12 ww3113306 阅读(210) 评论(0) 推荐(0)
摘要:非常妙的树形DP:由于n很小,我们可以枚举每一个点作为第一个节点,计算其时间花费 那么问题就转化为对于给点节点求花费时间。 通过观察,显然我们会发现先传给花费时间多的人更加合算,因为这样可以最大限度的避免 一个人还在辛苦的传递信息,另一个人却悠闲的喝下午茶(雾)的局面 所以我们可以每次都记录下对于一 阅读全文
posted @ 2018-04-09 21:03 ww3113306 阅读(332) 评论(0) 推荐(0)

知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。