遊歷魔法王國(網易)

2021-08-27 16:14:31 字數 954 閱讀 8649

**

時間限制:1秒

空間限制:32768k

魔法王國一共有n個城市,編號為0~n-1號,n個城市之間的道路連線起來恰好構成一棵樹。

小易現在在0號城市,每次行動小易會從當前所在的城市走到與其相鄰的乙個城市,小易最多能行動l次。

如果小易到達過某個城市就視為小易遊歷過這個城市了,小易現在要制定好的旅遊計畫使他能遊歷最多的城市,請你幫他計算一下他最多能遊歷過多少個城市(注意0號城市已經遊歷了,遊歷過的城市不重複計算)。

輸入描述:

輸入包括兩行,第一行包括兩個正整數n(2 ≤ n ≤ 50)和l(1 ≤ l ≤ 100),表示城市個數和小易能行動的次數。

第二行包括n-1個整數parent[i](0 ≤ parent[i] ≤ i), 對於每個合法的i(0 ≤ i ≤ n - 2),在(i+1)號城市和parent[i]間有一條道路連線。

輸出描述:

輸出乙個整數,表示小易最多能遊歷的城市數量。

輸入例子1:

5 2

0 1 2 3

輸出例子1:
3

#include

#include

#include

using

namespace

std;

int parent[60];

int dp[200];

int main()

int mx = 0;

for (int i = 0; i1; i++)

int d = min(l, mx);//步數 和 樹最大深度 取最小值,

cout

<< min(n, 1 + d + (l - d) / 2) << endl;

}//如果l>mx ,d=mx,答案 mx+(l-mx)/2+1

//如果l

網易 遊歷魔法王國

魔法王國一共有n個城市,編號為0 n 1號,n個城市之間的道路連線起來恰好構成一棵樹。小易現在在0號城市,每次行動小易會從當前所在的城市走到與其相鄰的乙個城市,小易最多能行動l次。如果小易到達過某個城市就視為小易遊歷過這個城市了,小易現在要制定好的旅遊計畫使他能遊歷最多的城市,請你幫他計算一下他最多...

遊歷魔法王國

魔法王國一共有n個城市,編號為0 n 1號,n個城市之間的道路連線起來恰好構成一棵樹。小易現在在0號城市,每次行動小易會從當前所在的城市走到與其相鄰的乙個城市,小易最多能行動l次。如果小易到達過某個城市就視為小易遊歷過這個城市了,小易現在要制定好的旅遊計畫使他能遊歷最多的城市,請你幫他計算一下他最多...

2018網易 遊歷魔法王國

題目 魔法王國一共有n個城市,編號為0 n 1號,n個城市之間的道路連線起來恰好構成一棵樹。小易現在在0號城市,每次行動小易會從當前所在的城市走到與其相鄰的乙個城市,小易最多能行動l次。如果小易到達過某個城市就視為小易遊歷過這個城市了,小易現在要制定好的旅遊計畫使他能遊歷最多的城市,請你幫他計算一下...