CSP-S 例题19-1 运输

 描述

n个城市之间,有n-1条道路。一辆货车从a城市出发,到b城市。某一段时间内,共有m辆货车出发。
货车不会绕道,走a城市到b城市的最短路径。
问:在m次运输中,n个城市里,城市经过的最多货车次数是多少。

N(2≤N≤50,000)个城市间有N-1条道路,编号从1到N。

输入描述

N(2≤N≤50,000)个城市间有N-1条道路,编号从1到N。
m(1≤m≤100,000)辆货车出发,第i辆从a到b。起点和终点,以及运输中经过的城市,都会记录1次,表明货车经过该城市。

输出描述

输入n和m。
输入n-1条边。
输出m组数据,每组两个整数x,y。

样例输入 1 

5 10
3 4
1 5
4 2
5 4
5 4
5 4
3 5
4 3
4 3
1 3
3 5
5 4
1 5
3 4

样例输出 1 

9

提示

城市经过的最多货车次数是多少

#include <bits/stdc++.h>
#define maxn 50010
using namespace std;
struct node
{
    int u, v, nxt;
} edge[maxn << 1];
int deep[maxn], head[maxn], cnt, lp[maxn][30], p[maxn];
void add(int u, int v)
{
    ++cnt;
    edge[cnt].u = u;
    edge[cnt].v = v;
    edge[cnt].nxt = head[u];
    head[u] = cnt;
}
void df
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值