本人代码如下:
#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
vector<vector<int> >adj;
const int N=1e3+5;
int w[N][N];
int n,k;
int c;
int dis[N],vis[N],f[N];
int min1=999999;
void dfs(int m,int fa){
if (vis[m]) return ;
vis[m]=1;
f[m]=fa;
dis[m]=dis[fa]+w[fa][m];
if (dis[m]>dis[c])
c=m;
for (int i=0;i<adj[m].size();i++){
dfs(adj[m][i],m);
}
}
int main(){
cin>>n>>k;
adj.resize(n+5);
for (int i=1;i<=n-1;i++){
int u,v,W;
cin>>u>>v>>W;
adj[u].push_back(v);
adj[v].push_back(u);
w[u][v]=w[v][u]=W;
}
dfs(1,0);
int c1=c;
memset(vis,0,sizeof(vis));
memset(dis,0,sizeof(dis));
dfs(c,0);
int road=dis[c];
int rem,rem1;
for (int i=c;i;i=f[i]){
rem=max(dis[i],road-dis[i]);
for (int j=f[i];j&&(dis[i]-dis[j])<=k;j=f[j]){
rem1=max(dis[j],road-dis[i]);
}
min1=min(min(min1,rem),rem1);
rem=1e4;
rem1=1e4;
}
cout<<min1;
return 0;
}
现在的问题是第4个点WA,但是我把数据下载之后放到自己的电脑上运行时得到的答案是正确的,请问这是什么情况?