网易真题-游历魔法王国
题目来源:https://www.nowcoder.com/question/next
题意
中文题意不再解释,,,,
思路
这道题有一个“题眼”,parent[i]的取值范围。
这个题眼可以省去深搜而直接用递推式的方式去计算树的最大深度(最大深度)。
其次,就是利用贪心。
分情况:
1.如果是L<=maxLen,那么就直接输出L;
2.如果是L>maxLen:
考虑最坏情况,除了最大深度所在的树链(以下用主链表示)之外,其他都在root上,那么肯定是考虑先游历除了主链之外的链(因为,主链是最长的,遍历主链并返回到root,是最浪费步数的),并留给主链maxLen的步数,遍历其他链需要其他链的二倍的步数(因为要返回到root)。
以上是贪心的思想。
由于可能L巨大,所以如果遍历的点的个数大于n,取n。
得:min(n,1+maxLen+(L-maxLen)/2)。
代码
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long LL;int parent[60];
int dp[200];
int main()
{int n,L;scanf("%d%d",&n,&L);for(int i = 0; i<n-1; i++){scanf("%d",&parent[i]);}int mx = 0;for(int i = 0; i<n-1; i++){dp[i+1] = dp[parent[i]]+1;mx = max(mx,dp[i+1]);}int d = min(L, mx);printf("%d\n",min(n,1+d+(L-d)/2));
}
网易真题-游历魔法王国相关推荐
- 网易编程题 游历魔法王国 (Python)
游历魔法王国(python) 魔法王国一共有n个城市,编号为0~n-1号,n个城市之间的道路连接起来恰好构成一棵树. 小易现在在0号城市,每次行动小易会从当前所在的城市走到与其相邻的一个城市,小易最多 ...
- 2018年网易秋招笔试真题——游历魔法王国
链接:https://www.nowcoder.com/questionTerminal/923b9dacf8544e4e83d5e22f5a0e731a 来源:牛客网 魔法王国一共有n个城市,编号为 ...
- 魔法王国java_网易编程题-游历魔法王国(深度优先遍历)
魔法王国一共有n个城市,编号为0~n-1号,n个城市之间的道路连接起来恰好构成一棵树. 小易现在在0号城市,每次行动小易会从当前所在的城市走到与其相邻的一个城市,小易最多能行动L次. 如果小易到达过某 ...
- ## (网易2018校招笔试)[编程题] 游历魔法王国
题目 魔法王国一共有n个城市,编号为0~n-1号,n个城市之间的道路连接起来恰好构成一棵树. 小易现在在0号城市,每次行动小易会从当前所在的城市走到与其相邻的一个城市,小易最多能行动L次. 如果小易到 ...
- 网易笔试题 游历魔法王国
/* *看完题目有点懵,不懂可以看下面两篇文章,解答的很详细 */ #include <bits/stdc++.h> using namespace std;int main() {int ...
- 网易2018校园招聘:游历魔法王国 [python]
''' [编程题] 游历魔法王国 时间限制:1秒 空间限制:32768K 魔法王国一共有n个城市,编号为0~n-1号,n个城市之间的道路连接起来恰好构成一棵树. 小易现在在0号城市,每次行动小易会从当 ...
- 网易2018校招——04.游历魔法王国
游历魔法王国 ** 魔法王国一共有n个城市,编号为0~n-1号,n个城市之间的道路连接起来恰好构成一棵树. 小易现在在0号城市,每次行动小易会从当前所在的城市走到与其相邻的一个城市,小易最多能行 ...
- 游历魔法王国(牛客网 网易2018校招题 图论)
链接:https://www.nowcoder.com/questionTerminal/f58859adc39f4edc9cd8e40ba4160339 来源:牛客网 魔法王国一共有n个城市,编号为 ...
- 网易2018编程题之游历魔法王国
题目描述: 魔法王国一共有n个城市,编号为0~n-1号,n个城市之间的道路连接起来恰好构成一棵树. 小易现在在0号城市,每次行动小易会从当前所在的城市走到与其相邻的一个城市,小易最多能行动L次. 如果 ...
最新文章
- bzoj1834: [ZJOI2010]network 网络扩容
- Office365邮箱Imap迁移步骤
- 菜鸟学Linux 第007篇笔记 简单命令的使用讲解(文本、时间、目录)
- C++为什么摒弃auto_ptr
- 工具:分享IntelliJ IDEA 5条调试技巧,太实用了!
- java https请求_Spring Cloud Sleuth:分布式请求链路跟踪
- 代码实现:判断101-200之间有多少个素数(质数),并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。...
- 客户端如何获取服务器控件的值(原理与实例)
- 计算机网络管理的应用,计算机网络管理技术及应用
- 小凡的Python之路——启航
- ddk开发 c语言,ddk_helloWDM_原代码是网上高手的杰作
- microhard p900数传配置方法
- SpringBoot整合IoTDB
- 软工网络15团队作业4——Alpha阶段敏捷冲刺之Scrum 冲刺博客(Day4)
- php运维知识,分享一些linux运维的基础知识
- 标准正态分布函数表的程序实现
- Oracle参数为英文或数字,ORACLE中将数字转换为英文
- 搜狗输入法语音转文字体验报告
- Java TreeMap的使用
- 网页静态化之Freemarker
热门文章
- mysql的msi是什么_mysql安装(msi方式)
- 今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事11月19日
- 四、buildroot中添加自己的软件包
- 那年那月那些事-2014.2
- 【WLAN】【基础知识】WIFI那些事儿之信道和频谱(涵盖2.4G、5G、6G,全网最全)
- Modbus网关在锂电池干燥箱的应用
- 京东家电今年将开上万家专卖店,线下PK苏宁国美
- CCK-8,让细胞活性检测 So Easy! - MedChemExpress
- 浮点数表示及运算规则
- 新能源电池电芯、模组和PACK工艺段移动机器人(AGV/AMR)应用选型