摘要:
${\color{cyan}{>>Question}}$ 很容易想到朴素方程,令$f[i][j]$表示到$i$行,$j$列的方案数 有 $$f[i][j] = \sum f[k][l]\;(k<i,l<j,a[k][l] \neq a[i][j])$$ 但显然是$O(n^4)$的,其实这看起来就想二 阅读全文
摘要:
${\color{cyan}{>>Qusetion}}$ 首先看到每个物品(馅饼)有三个属性(时间$t$,位置$p$,价值$v$),容易想到以物品为阶段来$dp$ 令$f[i]$表示到第$i$个物品的最大收益 有$$f[i] = max\left \{ f[j] \right \}+v[i],2*( 阅读全文
摘要:
${\color{cyan}{>>Question}}$ 二维偏序$dp$ 方程很简单 令$f[i]$表示到$i$的方案数 有$$f[i] = \sum f[j],\sum_{k = j+1}^i a[k] \geq 0$$ 写成前缀和的形式便是$$f[i] = \sum f[j],sum[i]-s 阅读全文
摘要:
针对无重复元素的离散化 $p[i].pos$为在原序列中的位置,$p[i].v$为要离散的值,$a$数组为离散后的值 针对有重复元素的离散化 阅读全文
摘要:
${\color{cyan}{>>Question}}$ 二分+$dp$(与跳房子类似) 二分答案(窗口大小),$dp$确定是否可行 $f[i]$表示到$i$($i$选)花的最少时间 $$f[i] = min_{j\in[i-d-1,i-1]}\left \{ f[j] \right \}+a[i] 阅读全文
摘要:
${\color{Cyan}{>>Question}}$ 单调队列模板 $$f[i] = max_{j\in[i-m,i-1]}\left \{ f[j] \right \}+a[i]$$ 注意统计答案的问题 阅读全文
摘要:
最近做了许多单调队列的题,也有了一些感悟 单调队列的题都可以用下面的代码来套 $hd$为队头,$tl$为队尾(左闭右闭),$lst$为还未插入的决策点的最左端的位置,其中代码并不是固定的,具体情况具体分析 阅读全文
摘要:
${\color{Cyan}{>>Question}}$ 一道经典的状压 开始没有想出来,但看了培训后,按照$dfs$的思路先想了一遍 假设我们要$dfs$,那我们要知道哪些牛用了,当前是哪头牛 所以状压的状态也就出来了 令$f[i][j]$表示$i$状态,当前在$j$号牛的方案数 有$$f[i][ 阅读全文
摘要:
${\color{Cyan}{>>Question}}$ 一道状压好题(少有的没看题解一遍$AC$的不是水题(自认为)的题(看来是我太菜了)) 首先看到$k\leqslant 16$,$emm$,要么暴搜,要么状压 再看$n\leqslant 10^5$,$emm$,状压实锤了,但这$n$太大,显然 阅读全文
摘要:
${\color{Cyan}{>>Question}}$ 一道状压的好题 首先拿到题,想都没想就设$f[l][i][j]$表示第$l$个人在状态$i$(此处的状态为任务是否被完成)下选j任务的最大成功率 有$$f[l][i][j] = max\left \{ f[l-1][i-\left \{ j 阅读全文