美文网首页
游历魔法王国-(网易2018)

游历魔法王国-(网易2018)

作者: 天使的流浪 | 来源:发表于2019-01-12 14:04 被阅读0次

题目:游历王国一共有n个城市,编号为1~n,n个城市之间的道路连接起来恰好是一棵树,现在从0号城市出发,可以走到相邻 的城市,小易最多走L次,计算可以游历的最多城市数;
输入:
// 城市个数和行动次数
5 2
// parents数组代表城市,在(i+1)号城市和parents[i]间有一条道路连接;
0 1 2 3
输出:最多游历的城市数量
3
分析:
n个城市之间的道路连接起来恰好是一棵树;
从树深和行动次数考虑:
① 当行动次数<树深时,只需要沿着树深方向一直走就可以,此时,可以游历的最多城市数量=行动次数+1
② 当行动次数>树深时,完全走完树深不足以完成所有行动,所以此时存在回退的情况,为了得到最多的城市数量,需要尽可能的降低回退成本,故必须走最长分支,此时多余行动能经过的城市 :(n-maxLen)/2,所以经过最多的城市数量为:maxLen+(n-maxLen)/2+1
代码实现:

package com.bj.wangyi;
import java.util.Scanner;
/**
 * 游历魔法王国
 * 2<=n<=50
 * 1<=L<=100
 * 0<=parents[i]<=i
 *
 */
public class Test2 {
    @SuppressWarnings("resource")
    public static void main(String[] args) {
        String str1 = new Scanner(System.in).nextLine();
        String str2 = new Scanner(System.in).nextLine();
        String chars1 [] = str1.split(" ");
        int n = Integer.parseInt(chars1[0]);
        int L = Integer.parseInt(chars1[1]);
        String parents [] = str2.split(" ");
        int dp [] = new int[100];
        int max = 0;
        //求最大深度
        for (int i = 0; i <n-1; i++) {
            dp[i+1] = dp[Integer.parseInt(parents[i])]+1;
            max = Math.max(max, dp[i+1]);
        }
        //求最大深度和行动次数最小值
        int dd = Math.min(max, L);
        //如果行动次数大于城市个数,则取城市个数;如果城市个数大于行动走的长度,取走的长度
        int result = Math.min(n, 1+dd+(L-dd)/2);
        System.out.println(result);
    }
}

知识点:
1.问题的分析和解决方案的制定;
2.数组的使用;
3.内置函数的使用,如Math.max(),Math.min()等;

相关文章

  • 游历魔法王国-(网易2018)

    题目:游历王国一共有n个城市,编号为1~n,n个城市之间的道路连接起来恰好是一棵树,现在从0号城市出发,可以走到相...

  • [30练习]游历魔法王国-网易2018秋

    1.题目描述 魔法王国一共有 n 个城市,编号为 0~n-1 号,n 个城市之间的道路连接起来恰好构成一棵树。小易...

  • 算法题目——游历魔法王国

    链接:https://www.nowcoder.com/questionTerminal/f58859adc39f...

  • 魔法声音王国复盘记—— 一路点评而来

    所在组织:魔法声音王国201903担任角色:魔法点评师点评法力:已破4成,尚需修炼 魔法声音王国这段有趣又...

  • 魔法征途之茉莉奇遇记

    在精灵森林深处,有一个美丽的国家,叫做魔法王国。在这个神秘的王国里,有一本魔法书,它掌管着整个王国的魔法。但,遗...

  • 魔法声音王国一周复盘

    不知不觉加入魔法森林王国,已经一个星期了,想着当初加入这个王国,只是出于好奇,到底有怎样的魔法?到底有怎样的魔法师...

  • 怪癖王国

    有一个怪癖王国,国王被一种奇怪的魔法控制。魔法美少女于景妍来到了这个王国,她在破解这个奇怪的魔法的时候,竟然被一种...

  • 魔法城堡

    在很久很久以前有一座魔法城堡坐落在魔法王国的中心,魔法王国建立于百万年前的远古时期,当时天地初开,元气充沛,强者无...

  • 魔法王国

    从前,有一个叫莎宾米的小女孩。她和她的爸爸妈妈住在一个叫普比亚的城市,她家有一个很大的花园!花园里有很多五...

  • 魔法王国

    我想了很久关于这个世界的介绍要放在哪里比较好,本来是想要穿插在故事之中,由人物对话和经历来表现出世界格局和等级划分...

网友评论

      本文标题:游历魔法王国-(网易2018)

      本文链接:https://www.haomeiwen.com/subject/slbfdqtx.html