1. 题目

有一棵n个节点的树,节点编号是0至 n−1,其中 0号节点是根节点,i号节点的父亲节点是father[i] 。

现在要对树浇水,把水撒到根节点上,水会顺着每一条边流下去,从 i 号节点的父亲流到 i 号节点需要 time[i] 的时间,请问需要多久水才能流到所有节点上。

样例
输入:
[-1,0,0]
[-1,3,5]
输出: 5
解释
这棵树如下所示:03/\5
1    2
从0到1需要花费3个单位时间,从0到2需要花费5个单位时间,
因此花费5个单位时间可以让水流到所有节点上。说明
如果 father[i] = i,那么以 i 为根的子树不考虑计算。

注意事项
2≤n≤1052 \leq n \leq 10^52≤n≤105
0≤father[i]<n,father[0]=−10 \leq father[i] < n,father[0] = -10≤father[i]<n,father[0]=−1
1≤times[i]≤1000,time[0]=−11 \leq times[i] \leq 1\,000, time[0] = -11≤times[i]≤1000,time[0]=−1

2. 解题

class Solution {public:int timeToFlowerTree(vector<int> &father, vector<int> &time) {int n = father.size(), id, t, maxt =0 ,i;vector<vector<int>> map(n);//图的邻接表for(i = 1; i < n; ++i)map[father[i]].push_back(i);//from , toqueue<pair<int,int>> q;// id, timeq.push({0,0});while(!q.empty()){   id = q.front().first;t = q.front().second;maxt = max(maxt, t);q.pop();for(i = 0; i < map[id].size(); ++i){ //遍历邻接表q.push(make_pair(map[id][i], t+time[map[id][i]]));}  }return maxt;}
};

1006 ms

LintCode 1862. 给树浇水的时间(图的遍历)相关推荐

  1. 0x21.搜索 - 树与图的遍历、拓扑排序

    目录 一.树与图的深度优先遍历及树的一些性质 1.树与图的深度优先遍历 2.时间戳 3.树的DFS序(树链剖分前驱知识) 4.树的深度 5.树的重心与sizesizesize 6.图的连通块划分 二. ...

  2. 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)

    常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...

  3. iMindMap思维导图软件之树状思维导图

    随着生活节奏的日益加快,你是否觉得脑力跟不上.创意不够新颖.思维还经常受阻呢?这个时候,或许思维导图可以为你打开一个新的世界,让你有焕然一新的感觉.帮助你从根本释放工作压力. 关于思维导图 思维导图又 ...

  4. 数据结构学习笔记(5.树与二叉树 6.图)

    文章目录 第五章 树与二叉树 树 树的常考性质 二叉树--定义.基本术语 二叉树--常考性质 二叉树--存储结构 二叉树--先序.中序.后序遍历 二叉树--层序遍历 由遍历序列构造二叉树 线索二叉树- ...

  5. 树的遍历和图的遍历的异同

    一.认识的理清 1. 应该认识到"深度优先"和"广度优先"是算法思想,而递归是实现"深度优先"的一种方法(深度优先可以非递归实现): 2. ...

  6. python回溯方法的模板_实例讲解Python基于回溯法子集树模板实现图的遍历功能

    这篇文章主要介绍了Python基于回溯法子集树模板实现图的遍历功能,结合实例形式分析了Python使用回溯法子集树模板针对图形遍历问题的相关操作技巧与注意事项,需要的朋友可以参考下 本文实例讲述了Py ...

  7. Mindmanager2020教程篇画一个树状思维导图及试用密钥过期

    MindManager思维导图是一个创造.管理和交流思想的通用标准,其可视化的绘图软件有着直观.友好的用户界面和丰富的功能,这将帮助您有序地组织您的思维.资源和项目进程. 在分析问题时,有许多可行的分 ...

  8. 画出计算机系统构成的树状图,如何绘制树状层次结构的树状思维导图?

    树状图,(又为树形图)因其外观像倒过来的树的样子,所以命名树状图.树形图是数据树的图形表示形式,以父子层次结构来组织对象.是枚举法的一种表达方式.初中学生学习概率时通常会要画的树状图.学会分析一件事物 ...

  9. 数据结构——树的思维导图,帮助自己记忆。

    数据结构--树的思维导图,帮助自己记忆.

最新文章

  1. Bootstrap4.x 新增
  2. 利用统计滤波方法去除空中漂浮物 以及去噪
  3. ajax返回一直进入error_解决ajax返回验证的时候总是弹出error错误的方法
  4. 解决bash: mysql: command not found 的方法
  5. 硬件三人行-开关电源学习笔记-1
  6. mpvue微信小程序动画_mpvue微信小程序系列
  7. 【飞秋】微软简化Visual Studio 非程序员也能开发软件
  8. ruby on rails ajax select
  9. 物理综合:Compile
  10. dbstart $oracle_home,使用dbstart和dbshut命令启动和关闭数据库
  11. 可视化大数据分析软件要掌握的6个核心技术
  12. javascript:鼠标拖动图标技术
  13. 微信小程序-强制手机端更新
  14. 高校校园网建设方案【含网络拓扑图+拓扑结构图+配置命令】(详细版)
  15. 友善之臂最新版mini2440学习笔记——u-boot 1.1.6移植(一)
  16. mybais学习记录一——入门程序
  17. 计算机毕业设计(附源码)python幼儿园管理系统
  18. 简单对应分析案例《好评数据分析》
  19. java开发最新获取抖音无水印视频和背景音乐
  20. 电工学习笔记——示波器交直流耦合的区别

热门文章

  1. 使用docker部署mysql主从复制集群
  2. sql语句遇到的问题
  3. C/C++ 中判断某一文件或目录是否存在
  4. 运行Myeclipse发生这事这是怎么回事,大神们
  5. 【海淘域名】GoDaddy账户被锁定后的解决方法
  6. [jstl] forEach标签使用
  7. 怎么用VC编程实现把用户名,密码提交到网页上并且实现登录?
  8. 首个开源 Linux 系统登陆火星,占有率超 Windows,一同登录还有一款安卓手机芯片...
  9. C++ 的几个for 循环,范围for语句
  10. 计算机的硬件发展趋势为,高性能计算机的发展趋势