旅游树形dp

来源:www.xysxzl.com时间:2021-02-21 10:28

旅游备注

题目描述

Cwbc和XHRlyb生活在s市,这天他们打算一起出去旅游。

旅游树形dp

XHRlyb想知道她与Cwbc最多能度过多少天的时光呢。

聪明的你在仔细阅读题目后,一定可以顺利的解决这个问题。

输入描述:

表示城市个数和第一天住宿的城市s,第一行,两个正整数n和s。

每行两个整数x和y,表示城市x与城市y之间有一条双向道路,接下来n-1行。

输出描述:

第一行,一个非负整数表示答案。

示例1

输入

复制 4 1

1 2

2 3

3 4

4 1

1 2

2 3

3 4

输出

复制 2

2

说明

在1号城市住宿,游览了1、2号城市,第一天。

第二天,在3号城市住宿,游览了4号城市,旅行结束。

备注:

1 ≤ n ≤ 500000, 1 ≤ s, x, y ≤ n。

#include

using namespace std;。

typedef pair PII;。

int n,s,cnt;。

vector g[500005];。

int dp[500005][2];。

void dfs(int x,int father)。

{

for(int i=0;i

{

if(g[x][i]==father) continue;。

dfs(g[x][i],x);。

dp[x][0]+=max(dp[g[x][i]][0],dp[g[x][i]][1]);。

dp[x][1]+=dp[g[x][i]][0];。

}

dp[x][1]++;。

}

int main()。

{

ios::sync_with_stdio(false);。

cin.tie(0);。

cout.tie(0);。

cin>>n>>s;。

cnt=0;

int x,y;

for(int i=1;i

{

cin>>x>>y;。

g[x].push_back(y);。

g[y].push_back(x);。

}

dfs(s,0);

cout<

}

标签:XHRlyb,游览,int,城市,Cwbc,住宿,树形,旅游,dp。

  • 走回头路完美九寨沟环线旅行
  • 西乡十一游玩攻略
  • 瑞士多少瑞士旅游瑞士多少
  • 香港旅游一种怎样体验
  • 日照十大旅游景点大全刘家赶海最具趣味
  • 飘零影视
  • 新婚度蜜月哪里旅游国内蜜月旅游胜地推荐
  • 长白山概况
  • 游客个别要求处理游客其他个别要求处理
  • 深圳香港一日游必去景点推荐
  • 精品行程推荐