
树形dp
文章平均质量分 66
jinglinxiao
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #396 (Div. 2)
比赛链接:Codeforces Round #396 (Div. 2)A:找最长不公共连续子序列。显然若s!=t,输出s和t最大长度,否则输出-1.#includeusing namespace std;typedef long long ll;int main(){ string s,t; while(cin>>s>>t) { if(s.length()>t.len原创 2017-02-09 20:24:03 · 118 阅读 · 0 评论 -
UVA-11354-Bond(树上倍增,dp,MST,LCA)
题目链接:UVA-11354-Bond首先,最大边最小的路径称为最小瓶颈路,最小瓶颈路一定是最小生成树上的路径(根据Kruskal)。 因此先处理处最小生成树,然后将最小生成树转化成一棵有根树。 anc[i][j]anc[i][j] 为点 ii 的第 2j2^j 层祖先,如: anc[i][0]=fa[i]anc[i][0]=fa[i] 。 cost[i][j]cost[i][j] 为点 ii原创 2017-03-28 17:32:41 · 414 阅读 · 0 评论 -
POJ-2342-Anniversary party(树形dp)
题目链接:POJ-2342-Anniversary partydp[i][j] 表示序号i去(j=1)或不去(j=0)时的最大值。 dp[i][1]=∑soncnt[i]i=1dp[soni][0]dp[i][1]=\sum_{i=1}^{soncnt[i]}dp[son_i][0] dp[i][0]=∑soncnt[i]i=1max(dp[soni][0],dp[soni][1])dp[i][原创 2017-04-09 22:39:27 · 326 阅读 · 0 评论 -
HDU - 6035 - Colorful Tree(树形dp)
题目链接:HDU - 6035 - Colorful Tree(树形dp)先贴一个巨佬博客 hdu_6032:Colorful Tree (2017 多校第一场 1003) 【树形dp】 - wy_2016 - 博客园 题意:一条链的权值定义为链上颜色的数量,求给定的树中所有不同链的权值之和。 一种颜色对答案的贡献为包含这种颜色的链的条数。因此可以对每种颜色求不包含这种颜色的链的条数。 sum原创 2017-07-26 16:19:32 · 581 阅读 · 0 评论 -
HDU - 2196 - Computer(树形dp求某点到其他点的最长路)
HDU - 2196 - Computer第一次 dfs 求出每个点到其子树叶子的最长路和次长路 第二次 dfs 求出每个点向上走的最长路#include<bits/stdc++.h>using namespace std;const int N=1e4+7;struct Edge{ int v,d;};vector<Edge> adj[N];int mx[N],se[N],原创 2017-08-29 14:17:56 · 359 阅读 · 0 评论 -
HDU - 4008 - Parent and son (树形dp)
HDU - 4008 - Parent and son题意是给出一棵无根树,对于每个询问 (x,y)(x,y) ,输出以 xx 为根的树中, yy 的最小儿子编号和最小后代编号。 我们可以先以 11 为根处理出每个结点的最小/次小儿子编号和最小/次小后代编号。 对于一个询问 (x,y)(x,y) 。如果 yy 的子树大小为 00 ,则没有答案。如果 xx 不是 yy 的子树结点,答案就是原答案。原创 2017-08-29 15:43:53 · 510 阅读 · 0 评论