**
時間限制: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次。如果小易到達過某個城市就視為小易遊歷過這個城市了,小易現在要制定好的旅遊計畫使他能遊歷最多的城市,請你幫他計算一下...