试题描述
对于一棵树,我们可以将某条链和与该链相连的边抽出来,看上去就象成一个毛毛虫,点数越多,毛毛虫就越大。例如下图左边的树(图 1 )抽出一部分就变成了右边的一个毛毛虫了(图 2 )。

输入数据
在文本文件 worm.in 中第一行两个整数 N , M ,分别表示树中结点个数和树的边数。
接下来 M 行,每行两个整数 a, b 表示点 a 和点 b 有边连接( a, b ≤ N )。你可以假定没有一对相同的 (a, b) 会出现一次以上。
输出数据
在文本文件 worm.out 中写入一个整数 , 表示最大的毛毛虫的大小。
样例输入
13 12
1 2
1 5
1 6
3 2
4 2
5 7
5 8
7 9
7 10
7 11
8 12
8 13
样例输出
11
测试数据范围
40% 的数据, N ≤ 50000
100% 的数据, N ≤ 300000
题解:
准确的来说深搜一遍就好了。注意父节点有时候也是要算上的。。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
struct use{int st,en;
}b[1000001];
int f[1000001],n,m,a,bb,cnt,ans,son[1000001],next[1000001],point[1000001];
inline void add(int x,int y)
{next[++cnt]=point[x];point[x]=cnt;b[cnt].st=x;b[cnt].en=y;
}
inline void dp(int x,int fa)
{int maxx(-100000),temp;f[x]=son[x];for (int i=point[x];i;i=next[i])if (b[i].en!=fa){dp(b[i].en,x);ans=max(ans,maxx+f[b[i].en]+1+son[x]-2);maxx=max(maxx,f[b[i].en]);f[x]=maxx+son[x]-1;}
}
int main()
{freopen("worma.in","r",stdin);freopen("worma.out","w",stdout);scanf("%d%d",&n,&m);for (int i=1;i<=m;i++){scanf("%d%d",&a,&bb);add(a,bb);add(bb,a);son[a]++;son[bb]++;}dp(1,0);cout<<ans;
}

【HAOI2009】【毛毛虫】【树形dp】相关推荐

  1. P3174 [HAOI2009]毛毛虫(树形dp)

    P3174 [HAOI2009]毛毛虫 题目描述 对于一棵树,我们可以将某条链和与该链相连的边抽出来,看上去就象成一个毛毛虫,点数越多,毛毛虫就越大.例如下图左边的树(图 1 )抽出一部分就变成了右边 ...

  2. [HAOI2009]毛毛虫

    题目描述 对于一棵树,我们可以将某条链和与该链相连的边抽出来,看上去就象成一个毛毛虫,点数越多,毛毛虫就越大. 输入输出格式 输入格式: 在文本文件 worm.in 中第一行两个整数 N , M ,分 ...

  3. The Lost House POJ - 2057(树形dp+贪心 (双线最优子结构问题))

    思路 题意:有一只蜗牛爬上树睡着之后从树上掉下来,发现后面的"房子"却丢在了树上面, 现在这 只蜗牛要求寻找它的房子,它又得从树根开始爬起,现在要求一条路径使得其找到房子 所要爬行 ...

  4. BNUOJ 52305 Around the World 树形dp

    题目链接: https://www.bnuoj.com/v3/problem_show.php?pid=52305 Around the World Time Limit: 20000msMemory ...

  5. [树形dp] Jzoj P5233 概率博弈

    Description 小A和小B在玩游戏.这个游戏是这样的: 有一棵n个点的以1为根的有根树,叶子有权值.假设有m个叶子,那么树上每个叶子的权值序列就是一个1->m 的排列. 一开始在1号点有 ...

  6. fwt优化+树形DP HDU 5909

    1 //fwt优化+树形DP HDU 5909 2 //见官方题解 3 // BestCoder Round #88 http://bestcoder.hdu.edu.cn/ 4 5 #include ...

  7. BZOJ 1040 ZJOI2008 骑士 树形DP

    题目大意:给定一个基环树林,每一个点上有权值,要求选择一个权值和最大的点集,要求点集中的随意两个点之间不能直接相连 最大点独立集--考虑到n<=100W,网络流铁定跑不了,于是我们考虑树形DP ...

  8. POJ 3342 树形DP+Hash

    这是很久很久以前做的一道题,可惜当时WA了一页以后放弃了. 今天我又重新捡了起来.(哈哈1A了) 题意: 没有上司的舞会+判重 思路: hash一下+树形DP 题目中给的人名hash到数字,再进行运算 ...

  9. [NC15748]旅游 树形dp基础

    菜鸡第一次接触树形dp这个东西,不过这个东西还是很好理解的(可能是因为模板题吧) 个人感觉,相比线性dp,树形dp的状态转移方程更加的直观,难点主要是在"树"的结构上比较麻烦. 题 ...

  10. 容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings

    题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹 ...

最新文章

  1. 以太坊区块链Ethereum开发资料汇总
  2. 如何在本机搭建SVN服务器【转】
  3. 实训23 2018.4.27
  4. 【复杂网络】用户画像不应脱离社会关系,谈复杂网络的关键技术和应用实践
  5. 数学之美 系列十五 繁与简 自然语言处理的几位精英
  6. 第一个python小游戏
  7. argis中4波段影像变3波段
  8. 数据处理能力相差 2.4 倍?Flink 使用 RocksDB 和 Gemini 的性能对比实验
  9. 曾经的python爬虫挣钱生活_聊一聊,这些年我用Python爬虫挣钱的那些事
  10. 【UI】为项目添加类似于淘宝筛选列表勾选的ui-choose
  11. “可视化”的数据分析落伍了?
  12. HDU2222【AC自动机(基础·模板)】
  13. X4扭曲字体或图形 coreldraw_CorelDRAW X4案例教程上-电子教案文档.ppt
  14. 电脑技巧:推荐几款装机必备的软件
  15. 对话华为鸿蒙掌舵人王成录:真正的第一,是掌握在自己手里的第一
  16. Java仿文库的基本方法(openoffice+swftools+flexPaper)
  17. js中each的用法
  18. AcWing 487. 金明的预算方案
  19. 人工智能未来的发展趋势
  20. 【原创】ARM LINUX 外部RTC实时时钟驱动移植(RX8025)

热门文章

  1. 上海市高等学校信息技术水平二三级python 模拟题 编程
  2. python三阶魔方_三阶魔方7步还原法详解 简单
  3. 聊一聊积分墙的那些事儿
  4. html转word 自动分页,word怎样自动分页
  5. 广东电信在线人工服务器,202.96.128.86广东电信DNS故障及解决方法
  6. 多因素deseq2 formula 怎么理解 如何设置design 哈佛大学——差异表达分析(七)设计公式(Design formulas)多因素差异分析 多个影响因子会影响差异分析结果 多因子
  7. unity3d之计算两向量的旋转角
  8. 标签上title属性与alt属性的区别是什么
  9. HTML里img标签里的alt属性解释
  10. 运动世界校园显示服务器异常,运动世界校园为什么成绩异常 成绩异常相关