思路:先找出树的直径,然后在直径上尺取得到最终结果。
这个题数据很水,听说bzoj上有加强到1e5的数据,我是想过了洛谷的题之后在bzoj上试试的,但谁知没机会了。
上代码:
//#pragma GCC optimize (2)
#include<cstdio>
#include<iostream>
#include<cmath>
#include<functional>
#include<cstring>
#include<string>
#include<cstdlib>
#include<queue>
#include<map>
#include<algorithm>
#include<set>
#include<stack>
#include<vector>
#include<sstream>
#include<list>
using namespace std;
typedef long long ll;
const int INF=0x3f3f3f3f;
const int maxn= 2e5+10;
const ll mod=6662333;
const int N=500;
struct node
{
int to,len,next;
} p[2*N];
int head[N];
int n,s;
int cnt;
void add(int from,int to,int len)
{
p[cnt].to=to;
p[cnt].len=len;
p[cnt].next=head[from];
head[from]=cnt++;
}