为什么RE了
查看原帖
为什么RE了
1409685
zhaoyikuan_kkk楼主2025/7/22 22:06

ber,TLE我可以接受但是RE又是怎么了

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
vector<int> G[10010];
// dis[u] 表示根结点到 u 的距离; 
// 能够到达的最远结点 mx_index
int mx_index, dis[10010]; 
void dfs(int u, int fa) {
    // 更新能够走到的最远结点
    if (dis[u] > dis[mx_index]) {
        mx_index = u;
    }
    for (int i = 0; i < G[u].size(); i++) {
        int v = G[u][i];
        if (v != fa) {
            // 更新到达 v 的距离
            dis[v] = dis[u] + 1;
            dfs(v, u);
        }
    }
}
int main() {
    int n;
    cin >> n;
    for (int i = 1; i < n; i++) {
        int u, v; cin >> u >> v;
        G[u].push_back(v); 
        G[v].push_back(u);
    }
    int first, second;
    // 计算直径的一端
    mx_index = 1;
    dfs(1, 0); // 以 1 为根找最远的节点
    first = mx_index; // 直径一端
    
    // 计算直径的另一端
    dis[first] = 0; // 以 first 为根再找一次
    dfs(first, 0);
    second = mx_index; // 直径另一端 second
    // 输出直径长度
    cout << dis[second] << endl;
    return 0;
}

这种题还没过,我和个XX一样

2025/7/22 22:06
加载中...