动态规划

序列DP

有些问题:

  • 求长度为\(l\)的上升子序列个数

    形如一个值域的前缀和的形式,还要支持插入,所以可以用树状数组优化DP,\(O(n^2logn)\)求解([BZOJ4361]isn)

  • 求最长上升子序列长度

    两种做法,前者拓展性更强

    • 设\(f[i]\)表示到第\(i\)个位置的最长上升子序列长度,则\(f[i]=max(f[j]+1),j<=i\&\&A[j]<A[i]\),用值域树状数组优化前缀\(max\)即可

    • 设\(f[i]\)表示最长上升子序列长度为\(i\)的最小结尾值,可以知道\(f\)是单调递增的。新加入一个数\(x\)时找到大于等于\(x\)的第一个位置\(j\),\(f[j]=x\),意思是长度为\(j\)的最长上升子序列可以在\(j-1\)的基础上接\(x\)而不是接\(f[j]\),同时对其他的\(f\)不影响。如果\(x\)大于了最大值,\(f\)往后加一位

      如果求的是不降子序列那找到严格大于\(x\)的位置即可

    关于最长上升子序列,有一个很神奇的性质:拥有双权值的序列,对其一维排序,对另一维做\(LIS\)答案相同

    这个性质仿佛并没有什么用.....证明:对某一维排序并不影响两个元素间的二维偏序关系

  • 序列为树的前序遍历,则为区间DP问题

考虑方向:

  • 对区间DP
  • 对长度DP
  • 考虑倍增优化

背包问题

  • 充分利用好题目条件,隐含着物品有无限制、不会超过\(\sqrt n\)个等条件
  • 物品代价的整倍数,用同余系的单调队列优化

状态压缩以及拆分数

在点数很少的情况下可以进行状态压缩
点如果是没有区别的,可以采用拆分数进行更大数据范围的操作,再组合计数即可

\(40\)内的拆分数在\(4W\)以内

期望概率DP

马尔可夫过程

大概就是说状态可以回退,自己可以转移给自己或者自己之前的状态,这就需要高斯消元了

  • [JLOI2012]时间流逝

树上马尔可夫过程,\(f[i]=Pf[fa]+(\sum f[son])+1\)

需要高斯消元但是时间不够,介绍一种 \(O(n)\)的树上高斯消元

假设\(f[i]=kf[fa]+b\),然后依次可以推导出\(f[i]=\frac{P}{1-A\sum k}f[fa]+\frac{1+A\sum b}{1-A\sum k}\),从而表示这个表示可行,然后对于每个点算\(k\)和\(b\)就可以得到根的答案了

一类生成树计数问题

树的生成方式为:每次在当前的树的结构上随机选取一个点,在其下方挂上一个结点

已经遇到的题目:

  • 问期望高度(10.17T2)

    设\(f[i][j]\)表示放了\(i\)个结点,高度不超过\(j\)的方案数,转移是\(f[i][j]=f[k][j-1]+f[i-k][j]\),表示为一棵树连到了另一棵树的根。最后除以阶乘即可。

  • 问期望\(\sum_{i=1}^{n}\sum_{j=1}^{n}dis(i,j)\)(HAOI2018苹果树)

    考虑每一条边产生的贡献,枚举\(i\)点的\(siz\),然后乘上\(1-i\)的生成方式、\(i\)子树的生成方式、其他地方的生成方式、以及i子树内选择编号的方案数

平方计数

求\(\sum a^2\)

  • 如果\(a\)是到达某种状态的方案数,那么可以等价为求两种操作序列最后得到的状态相同的方案数(NOI2009管道取珠)

Noip前的大抱佛脚----动态规划的更多相关文章

  1. Noip前的大抱佛脚----文章索引

    Noip前的大抱佛脚----赛前任务 Noip前的大抱佛脚----考场配置 Noip前的大抱佛脚----数论 Noip前的大抱佛脚----图论 Noip前的大抱佛脚----动态规划 Noip前的大抱佛 ...

  2. Noip前的大抱佛脚----Noip真题复习

    Noip前的大抱佛脚----Noip真题复习 Tags: Noip前的大抱佛脚 Noip2010 题目不难,但是三个半小时的话要写四道题还是需要码力,不过按照现在的实力应该不出意外可以AK的. 机器翻 ...

  3. Noip前的大抱佛脚----字符串

    目录 字符串 经验 用FFT求解字符串匹配问题 两(多)串DP时状态合并 最长公共子序列转LIS 位运算最大值 挂链哈希 哈希处理回文串 树哈希 字符串模板库 KMP 最小循环表示 Mancher A ...

  4. Noip前的大抱佛脚----一些思路

    目录 一些思路 序列 函数问题 网格图 删除和询问 乘法问题 顺序问题 最值问题 研究成果 数论分块套数论分块的复杂度 一些思路 Tags:Noip前的大抱佛脚 序列 线段树(当然还要有主席树啊!) ...

  5. Noip前的大抱佛脚----数论

    目录 数论 知识点 Exgcd 逆元 gcd 欧拉函数\(\varphi(x)\) CRT&EXCRT BSGS&EXBSGS FFT/NTT/MTT/FWT 组合公式 斯特林数 卡塔 ...

  6. Noip前的大抱佛脚----图论

    目录 图论 知识点 二分图相关 DFS找环 并查集维护二分图 二分图匹配的不可行边 最小生成树相关 最短路树 最短路相关 负环 多源最短路 差分约束系统 01最短路 k短路 网络流 zkw费用流 做题 ...

  7. Noip前的大抱佛脚----数据结构

    目录 数据结构 知识点及其应用 线段树 神奇标记 标记不下放 并查集 维护二分图 维护后继位置 堆 可并堆的可持久化 dsu on tree 方式&原理 适用范围 单调队列 尺取合法区间 模板 ...

  8. Noip前的大抱佛脚----赛前任务

    赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...

  9. Noip前的大抱佛脚----根号对数算法

    根号算法 分块 数列分块入门九题(hzwer) 入门题1,2,3,4,5,7 问题:给一段区间打上标记后单点查询 解法:主要是每块维护一些标记,计算答案等,此类分块较为简单 注意:块大小一般为\(\s ...

随机推荐

  1. RedHat 安装YUM软件

    最近在虚拟机里搭建RedHat Enterprise Linux 6.0 X86_64位系统,在此机器上安装了Oracle11g数据库.其中在安装软件的时候,一般都是用的是RPM命令,但是有些软件包有 ...

  2. Management Studio 插件生成安装包要点(以ProjkyAddin为例)

    通过Visual Studio向导生成Management 插件框架就不说了,网上能搜到不少资料.本篇重点是说明怎么设计一个插件安装包,适用于Management Studio 2005 到2014的 ...

  3. UpdateServer事务实现机制

    UpdateServer(UPS) 是OceanBase的写入单点,一个集群中只有一台UPS服务器,所有的写都写入到这台机器.OceanBase采用基于静动态数据分离的机制,静态数据存储在静态数据服务 ...

  4. Jboss Jmx-Console和 Jboss web-console安全设置

    1.介绍 如果你暴露你的JBoss服务器通过网络(如通过启动服务器使用选项B 0.0.0.0或者通过改变jboss.bind.address首次出现0.0.0.0在.../jboss/server/d ...

  5. spring配置datasource

    1.使用org.springframework.jdbc.datasource.DriverManagerDataSource  说明:DriverManagerDataSource建立连接是只要有连 ...

  6. Nav 切换

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Linux ulimit命令详解

    ulimit 是一个计算机命令,用于shell启动进程所占用的资源,可用于修改系统资源限制 命令常用参数 -H 设置硬资源限制. -S 设置软资源限制. -a 显示当前所有的资源限制. -c size ...

  8. mac osx 升级到10.10 软件无法打开的问题

    osx升级到10.9.5 和10.10后,很多软件出现无法打开的问题, This patch seems to be corrupted.Please make sure you get your p ...

  9. Elementary Sorts

    初级排序 rules of the game 排序是很常见的需求,把数字从小到大排,把字符串按字典序排等等,目标是能对任何类型的数据进行排序,这可以通过回调(callback)实现: Java 用接口 ...

  10. Django 自定义模板标签和过滤器

    1.创建一个模板库 使用模板过滤器的时候,直接把过滤器写在app里,例如:在app里新建一个templatetags的文件夹,这个目录应当和 models.py . views.py 等处于同一层次. ...