题目 用$n$个点组成二叉树,问高度$\geq h$的有多少个。 分析 首先前缀和相减就能得到答案,做dp 设$dp[n][h]$表示节点数为$n$,高度不超过$h$的树的个数 那么$dp[n][h]=\sum_{i=0}^{n 1}dp[i][h 1] dp[n i 1][h 1]$ 最后输出$d ...
分类:
其他好文 时间:
2020-02-04 15:29:33
阅读次数:
56
题:https://ac.nowcoder.com/acm/contest/4010/K 题意:用一些模式串凑成一个目标串,每个模式串有消耗,问组合的最小消耗,或不能组成输出-1; 分析:典型的AC自动机处理后在跳fail的过程中进行操作,这里操作就是dp计算最小。用dp[i]表示长串前ii位的最小 ...
分类:
其他好文 时间:
2020-02-04 00:46:26
阅读次数:
65
题目:https://vjudge.net/problem/UVA-624 题目描述: 选CD填充时间,使CD所占总和尽可能大。 分析: 在总的时间内选尽可能大的。那么可以看成CD所占的时间是它的费用,也是它的价值。费用不超总时间。就是01背包了,还要选哪个,那就要记录一下路径。记录方法参照网上的博 ...
分类:
其他好文 时间:
2020-02-04 00:18:18
阅读次数:
67
"Link" 看到全是度数相关的计数就可以考虑Prufer序列。 一个点的度数就是其在Prufer序列中的出现次数$+1$,而一个Prufer序列的贡献就是其所有元素出现次数$+1$的乘积,我们可以把乘积拆开dp。 设$f_{x,i}$表示考虑前$x$个点,Prufer序列长度为$i$的答案之和。 ...
分类:
其他好文 时间:
2020-02-03 22:54:24
阅读次数:
135
A.选择 题意:给定n个点m条边的无向图以及q个操作,支持删边和询问u到v是否存在两条不相交路径。max(n,m,q)0,二分+check贪心求至少t,t=K则满足 根据以上可以猜想可行的段数是连续的,至少L至多R,满足L<=K<=R则满足 L和R可以dp出来,bit优化求前缀最值。 猜想的正确性是 ...
分类:
其他好文 时间:
2020-02-03 22:47:04
阅读次数:
83
"题目链接" 这道题与下一章的数位$dp$解题思路十分一致。 把寻找答案变成按位(并且是字典序从小到大)枚举当前这一位可以填的情况。 通过$dp$预处理的信息告诉我们可行性,就可以把答案紧逼到一个更小的(子)问题,非常有趣。 考虑 $dp$ 预处理的信息: $f[i][j][0 / 1]$ 表示 $ ...
给你一棵 $n$ 个点的树,点带权,对于每个节点求出距离它不超过 $k$ 的所有节点权值和 $m_i$ 随便定一个根,设$f[i][j]$表示只考虑子树,距离为$j$的权值和,$g[i][j]$表示考虑子树和父树,距离为$j$的权值和,显然答案可以用$g$表示 $f[p][0]=w[p]$ $f[p ...
分类:
其他好文 时间:
2020-02-03 22:12:47
阅读次数:
68
很显然的递推式 这么个题你卡我常干嘛,害得我加快读 (谁叫我是 党呢 ...
分类:
其他好文 时间:
2020-02-03 19:22:44
阅读次数:
91
题目链接 https://atcoder.jp/contests/agc035/tasks/agc035_e 题解 没想出来最后一步DP宛如智障…… 考虑一个数$x\notin S$的条件是$x$被删除了且在$x$最后一次被删除之后不能再对$x+2$和$x K$进行删除操作。也就是说$x+2$和$x ...
分类:
其他好文 时间:
2020-02-03 19:03:38
阅读次数:
68
递归 1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 5 using namespace std; 6 7 const int max_n = 100+2; 8 9 int dp[max_n][max_n]; 10 i ...
分类:
其他好文 时间:
2020-02-03 17:29:59
阅读次数:
68