
树形dp
wtcl
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树形dp+状态
1.没有上司的舞会 一条边上最多选择一个点 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; int num[6100]; int deg[6100]; int dp[6100][2]; int h[6100],...原创 2020-03-27 10:25:05 · 151 阅读 · 0 评论 -
背包问题
1.01背包 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int dp[1010]; int v[1010]; int w[1010]; int main() { int n,V; cin>>...原创 2020-03-26 22:51:19 · 92 阅读 · 0 评论 -
数字转换
数论常用技巧:求倍数比求约数简单。 ```cpp #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N=1e5+10; int d1[N],d2[N],st[N]; int h[N],e[N...原创 2020-03-26 19:37:20 · 196 阅读 · 0 评论 -
树的中心 树的最长路径
这两道题都做过很多遍了。再次做发现了很多以前没注意到的问题。; 1.求树的中心的时候,两次dp后,需要重新遍历所有点求ans。 如果在求up时求ans会忽略根节点。 2.如果边的权值为负,有很多细节需要考虑。 要注意是必须到其他点,还是可以到自己。 ```cpp #include <cstring> #include <iostream> #include <alg...原创 2020-03-26 16:22:36 · 137 阅读 · 0 评论 -
选课
有依赖的背包问题(树形dp+分组背包) #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; int num[310],deg[310]; int h[310],ver[310],ne[310],cnt=0; int...原创 2019-11-16 14:19:12 · 147 阅读 · 0 评论 -
没有上司的舞会
树形dp 基础题 #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; int num[6100]; int deg[6100]; int dp[6100][2]; int h[6100],ver[6100],ne[...原创 2019-11-16 12:45:28 · 81 阅读 · 0 评论 -
Computer HDU - 2196
树形dp 当前一个点的最大距离只有两种来源,一种是它到叶子节点的最大距离,一种是经过根节点的最大距离(也就是根节点到叶子节点不经过当前点的最大距离 + 跟到当前点的距离),实现的话发现要求不经过当前点,所以我们求到叶子节点向上的最大距离时还要维护一个次短距离。 首先一遍dfs,求出从任意一个节点到叶子节点的最短路dp【i】【0】和次段路dp【i】【1】,算是一个预处理。 然后,定义状态dp【i】【...原创 2019-09-26 21:24:40 · 133 阅读 · 0 评论