随笔分类 -  动态规划

摘要:令 $f[x][j]$ 表示以 $x$ 为根的子树,选出连通块的异或值为 $j$ 的方案数. 然后有 $f[x][j]=f[x][j]+\sum_{i\oplus k=j} f[x][i] \times f[son][k]$. 其中,$\oplus$ 为异或符号. 求解这个东西显然可以用 $FWT$ 阅读全文
posted @ 2020-01-08 10:59 EM-LGH 阅读(118) 评论(0) 推荐(0)
摘要:有 $2^n$ 名选手,编号为 $1$ 至 $2^n$. 现在这 $2^n$ 名选手将进行 $n$ 轮淘汰赛,决出胜者. 若 $x<y$,则 $x$ 能战胜 $y$. 但是有 $m$ 个例外,1 号选手会输给这 $m$ 个选手,问有多少种初始排列方式使得 $1$ 号点能取得胜利. (每次是 2i v 阅读全文
posted @ 2020-01-07 16:17 EM-LGH 阅读(301) 评论(0) 推荐(0)
摘要:看到这道题第一个想法肯定是按照套路钦定一些地方不合法,然后其他地方随便选,最后来一个二项式反演. 但是我们发现这个 DP 状态很难设置. 然后你发现一个非常神的性质:由于题中给的是绝对值,所以说一个位置要是不合法的话,只有两种数值的可能(+k和-k) 然后把位置 $i$ 和值 $i+/-k$ 相连, 阅读全文
posted @ 2020-01-07 14:25 EM-LGH 阅读(194) 评论(0) 推荐(0)
摘要:我们令 $f[i]$ 表示以 $i$ 为根的删除方案数. 这里一定要注意一件事情:根据我们的定义,我们已经默认 $i$ 点为根的子树在删除时 $i$ 是最后删除的. 然后按照换根 DP 的套路转移就行,但是转移的时候组合数一定要注意. #include <cstring> #include <cst 阅读全文
posted @ 2020-01-07 11:20 EM-LGH 阅读(157) 评论(0) 推荐(0)
摘要:Description Input Output 看到这种恰好的一般就是二项式反演了. 令 $f[i][j]$ 表示考虑糖果前 $i$ 个糖果,恰好比药片大 $j$ 个的方案数.(我们只选了 $j$ 个糖果) 转移的话我们将两个数组分别从小到大排序,这样就非常好转移了. 我们令 $l[i]$ 代表第 阅读全文
posted @ 2020-01-07 07:49 EM-LGH 阅读(128) 评论(0) 推荐(0)
摘要:题意:在 $n$ 个数的 $2^n-1$ 个非空子集中选取 $m$ 个,且必须满足: 1. $m$ 个子集两两不同. 2. 每个数在 $m$ 个子集中出现总次数为偶数. 3. 每个子集非空. 令 $f[i]$ 表示选出了 $i$ 个集合且满足了上述 3 条限制的方案数. 直接求 $f[i]$ 比较困 阅读全文
posted @ 2020-01-06 22:40 EM-LGH 阅读(180) 评论(0) 推荐(0)
摘要:这个题和那个城市规划几乎是一个套路. 就是钦定一个点,然后枚举这个点所在连通块大小,然后其余部分随便连. 由于我们钦定了一个点,所以我们算的方案数肯定不会重复. 即 $f[S]=TOT(S)-\sum_{T \subseteq S} f(T) \times TOT(S-T)$. code: #inc 阅读全文
posted @ 2020-01-06 16:42 EM-LGH 阅读(171) 评论(0) 推荐(0)
摘要:题意: 给定一张图,和这个图的一颗生成树. 求:重新对这颗树标号,有多少种标号方式满足如果一条边 $(x,y)$ 在树中出现的话在图中也出现. 暴力做法:$f[i][j][S]$ 即在以 1 为根的树中遍历到点 $i$,该点映射的点是 $j$,且 $i$ 这颗子树映射的点集是 $S$. 转移的话时间 阅读全文
posted @ 2020-01-06 16:14 EM-LGH 阅读(255) 评论(0) 推荐(0)
摘要:这个还是非常神仙的... code: #include <cstdio> #include <algorithm> #define N 1006 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespa 阅读全文
posted @ 2020-01-06 11:59 EM-LGH 阅读(123) 评论(0) 推荐(0)
摘要:code: #include <cstdio> #include <string> #include <cstring> #include <algorithm> #define N 66 #define ll long long #define mod 998244353 using namesp 阅读全文
posted @ 2020-01-06 10:23 EM-LGH 阅读(152) 评论(0) 推荐(0)
摘要:code: #include <cstdio> #include <cstring> #include <algorithm> #define ls x<<1 #define rs x<<1|1 #define N 2105 #define ll long long #define setIO(s) 阅读全文
posted @ 2020-01-06 08:47 EM-LGH 阅读(172) 评论(0) 推荐(0)
摘要:换根DP 求一下每个点为起点的最长路径,然后用双指针扫一下统计答案就好了. code: #include <cstdio> #include <queue> #include <set> #include <algorithm> #define N 1000007 #define ll long l 阅读全文
posted @ 2020-01-03 15:40 EM-LGH 阅读(113) 评论(0) 推荐(0)
摘要:数字很多,但是由于总和不超过 $2\times 10^6$,所以最多只能凑出来 $2\times 10^6$ 种算术和. 由于这里是对算是和取异或,所以我们只需关注每种算术和出现次数的奇偶. 由于奇奇 $\Rightarrow$ 偶,奇偶 $\Rightarrow$ 奇,偶偶 $\Rightarro 阅读全文
posted @ 2020-01-02 22:27 EM-LGH 阅读(154) 评论(0) 推荐(0)
摘要:现在看来,这道题的 84 pts 随便拿啊. 100 pts 也不是很难,但是考场上太过于紧张加上心理素质不好吧... 84pts 暴力的话设状态 $f[i][j][k]$ 表示决策到第 $i$ 行,枚举的拿了 $j$ 个,其余拿了 $k$ 个. 但是我们把那个不等式拆开后发现其实表示的就是钦定的比 阅读全文
posted @ 2020-01-02 20:49 EM-LGH 阅读(130) 评论(0) 推荐(0)
摘要:令 $f[i][j][k]$ 表示 $fj$ 扫到 $i$,$fp$ 扫到 $j$,已经选了 $k$ 个身高的所有状态的前缀和. 我们有 $f[i][j][k]=f[i-1][j][k]+f[i][j-1][k]-f[i-1][j-1][k]$,这步是一个简单的容斥. 然后如果有 $fj[i]=fp 阅读全文
posted @ 2020-01-02 20:24 EM-LGH 阅读(134) 评论(0) 推荐(0)
摘要:状态还比较自然. 令 $f[x][j]$ 表示 $x$ 的子树全被控制,且多出来 $j$ 层. 令 $g[x][j]$ 表示还需要 $j$ 层才能控制 $x$ 所有子树. 转移 $f[x][j]$ 的时候有两种情况:之前已经控制:$f[x][j]+g[y][j]$,之前没控制:$g[x][j+1]+ 阅读全文
posted @ 2020-01-02 18:09 EM-LGH 阅读(126) 评论(0) 推荐(0)
摘要:显然01分数规划转成二分答案+判断是否大于 0 的问题. 这个题有一个坑点:不止根节点的父亲可能是 0 号节点(0号节点也是不能省略的) code: #include <cstdio> #include <string> #include <cstring> #include <iostream> 阅读全文
posted @ 2020-01-02 16:23 EM-LGH 阅读(178) 评论(0) 推荐(0)
摘要:这个题有一个结论:如果用 $x$ 个点能凑出的给点个数在 $[L,R]$ 之间,那么任意 $v\in [L,R]$ 一定能取到. 知道这个结论之后跑一个树形背包就行了,注意在跑背包的时候上界一定要限制好,要不然时间复杂度会多一个 $O(n)$ 的. code: #include <cstdio> # 阅读全文
posted @ 2020-01-02 15:24 EM-LGH 阅读(145) 评论(0) 推荐(0)
摘要:Description Viruses are usually bad for your health. How about fighting them with... other viruses? In this problem, you need to find out how to synth 阅读全文
posted @ 2020-01-02 14:02 EM-LGH 阅读(144) 评论(0) 推荐(0)
摘要:倒在了性质分析上....(还有仔细读题) 仔细读题后,我们发现红色边只能连接一个连通块和一个叶节点(或两个叶节点). 然后如果一个状态是合法的,当且仅当以某个点为根时所有蓝边都是形如 son[x]->x->fa[x] 然后因为有这条性质,我们就可以进行树形DP了. 令 $1$ 为根,$f[x]$ 表 阅读全文
posted @ 2020-01-02 10:40 EM-LGH 阅读(154) 评论(0) 推荐(0)