DT_Kangdp

多重背包

f [ i ] [ j ] = m a x ( f [ i − 1 ] [ j − k ∗ v ] ) f[i][j]=max(f[i-1][j-k*v]) f[i][j]=max(f[i1][jkv])
第二维在mod v意义下形成v条转移链,把这些链拿出来分别转移,每个点可以被上一层的一段区间转移过来

整数拆分问题

问题:一个正整数化成一个无序的正整数序列的和,问有多少种不同序列
f [ i ] [ j ] f[i][j] f[i][j] i个数拼出j的方案数,两种转移:
新加一个1:->f[i+1][j+1]
所有数加1:->f[i][j+i]
复杂度O(n^2)

考虑优化:
性质:大于 n \sqrt{n} n 的数不超过 n \sqrt{n} n
这样第一个转移改为:->f[i+1][j+ n \sqrt{n} n ]
第二个不变
这样第一维只有 n \sqrt{n} n
小于 n \sqrt{n} n 的部分完全背包,只需要枚举 n \sqrt{n} n 个数
之后将两部分合起来 O ( n ) O(n) O(n)

树形dp

一般有关size的dp的复杂度是 O ( n 2 ) O(n^2) O(n2)
每对点对只在lca处贡献

概率与期望

·加法原理
·乘法原理
·期望的线性性
·若干事情都发生的概率:乘起来
·若干事情至少一个发生的概率:全集减去不合法的

概率充电器

f [ u ] f[u] f[u]只考虑u的子树,u不带电的概率
两遍dfs,树形dp

决策单调性优化

如果 f [ i ] f[i] f[i]的决策点是p[i],那么f[i]由f[p[i]]转移过来。
形如f[i]=min(f[j]+w[j,i]),如果满足决策单调性,那么必须满足四边形不等式

每更新一个确定的f,通过二分确定它能决策的待定后缀。具体地,用一个队列维护决策点,每次插入,从队尾开始比较,能完全替换就弹出,否则二分。

wqs二分(凸优化)

函数f斜率单调,知道极值,可以很快求出特值

SIT

考虑先dp联通情况,空位插板进去

经典题

问题:n个点有编号连通图个数
考虑算不合法的,每次转移枚举1号点所在的联通块大小。

队员分组

找两个不相交团,建补图找两个独立集,二分图染色,背包

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值