树形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 · 120 阅读 · 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 · 72 阅读 · 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 · 115 阅读 · 0 评论 -
树的中心 树的最长路径
这两道题都做过很多遍了。再次做发现了很多以前没注意到的问题。;1.求树的中心的时候,两次dp后,需要重新遍历所有点求ans。如果在求up时求ans会忽略根节点。2.如果边的权值为负,有很多细节需要考虑。要注意是必须到其他点,还是可以到自己。```cpp#include <cstring>#include <iostream>#include <alg...原创 2020-03-26 16:22:36 · 107 阅读 · 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 · 115 阅读 · 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 · 63 阅读 · 0 评论 -
Computer HDU - 2196
树形dp当前一个点的最大距离只有两种来源,一种是它到叶子节点的最大距离,一种是经过根节点的最大距离(也就是根节点到叶子节点不经过当前点的最大距离 + 跟到当前点的距离),实现的话发现要求不经过当前点,所以我们求到叶子节点向上的最大距离时还要维护一个次短距离。首先一遍dfs,求出从任意一个节点到叶子节点的最短路dp【i】【0】和次段路dp【i】【1】,算是一个预处理。然后,定义状态dp【i】【...原创 2019-09-26 21:24:40 · 95 阅读 · 0 评论