https://tdpc.contest.atcoder.jp/assignments N 简单的树形DP,把加边转化成加点,组合数简单算一下。 Q 为了不重复只能加01字符。 为了知道是否成段需要记录结束位置。 但是这样没法转移。可以再存一个AC自动机状态,也可以再存末7位的数。可以发现结束位置需 ...
分类:
其他好文 时间:
2020-02-25 17:58:53
阅读次数:
78
"题面" 题解 考虑树形 DP , 设 $f[i]$ 为 $i$ 节点为根的子树最大收益是多少, $h[i]$ 代表 $i$ 节点的最优方案是否唯一 转移的话拿个堆记一下子节点中 $ 0$ 的那些, 然后 $h$ 跟他们的与一下 若是剩下来的有 $f = 0$ 或是跟你选的是一样的, 这个点 $i$ ...
分类:
Web程序 时间:
2020-02-24 20:29:54
阅读次数:
85
"题面" 树形 DP 的经典问题。 我们设 $dp_{i,j}$ 表示当前节点为 $i$,当前节点的子树(包含当前节点)最多装的体积是 $j$ 的最大价值。 我们遍历节点的过程就相当于做了一遍分组背包。 注意遍历完所有子节点后要更新一下状态。 ...
嘛,可以发现,,,,,如果要全部走回来 单独一个走一定比多个一起走更优 于是只用考虑一个单独走回来和多个一起走不回来的情况就好了 #include<bits/stdc++.h> #define MAXN 10005 using namespace std; int n,s,k,tot,f[MAXN] ...
分类:
其他好文 时间:
2020-02-13 19:28:26
阅读次数:
68
题目链接: "P2014 选课" ~~简单的~~树形$dp$,借助$dfs$实现。 一般的树形$dp$数组是要维的,一维记录节点(编号或父/子节点的状态(有时三维)),另一维记录权值或计数。 重要的是判断从根节点$dp$还是从叶节点$dp$,显然此题需从叶节点开始。 我们记$dp[i][j]$为从$ ...
分类:
其他好文 时间:
2020-02-13 12:55:41
阅读次数:
57
目录 贪心 搜索 数据结构 栈 队列 优先队列 map vector 树状数组 线段树 其他 bitset 字符串 KMP Trie树 Manecher AC自动机 序列自动机 后缀数组 数论 因数 最小公倍数,最大公因数 质因数 质数 质数判断 质数筛法 快速幂 逆元 中国剩余定理 扩展欧几里得 ...
分类:
其他好文 时间:
2020-02-06 19:37:23
阅读次数:
130
每个点有重数,求到所有点距离最小的点 就是魔改的重心了 ...
分类:
其他好文 时间:
2020-02-05 18:24:46
阅读次数:
62
给你一棵 $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
树形dp [TOC] 树形dp的性质:没有环,dfs不会重复,而且具有明显而又严格的层数关系。 判断一道题是否是树形dp:首先判断数据结构是否是一棵树,然后是否符合动态规划的要求。如果都符合,那么是一道树形dp的问题。我们需要通过下面几个步骤来解题。 建树 建树过程中,我们需要通过数据量和题目的要求 ...
分类:
其他好文 时间:
2020-02-02 23:21:09
阅读次数:
90