第一题用python只通过73%,改成c++就AC了。各位同学们以后绝对不要用python
#include <iostream> #include <vector> using namespace std; vector<vector<int>> v; int fd(int father,int current)
{ int i; int max_len=0,len; for(i=0;i<v[current].size();i++)
{ if(v[current][i]!= father)
{
len=fd(current,v[current][i]); if(len>max_len)max_len=len; }
} return max_len+1; } int main() { int n; cin >> n; int i; int x, y; v.resize(n); for (i = 0; i < n - 1; i++)
{
cin >> x >> y; v[x - 1].push_back(y - 1); v[y - 1].push_back(x - 1); } int max_len = 0, len; for (i = 0; i < v[0].size(); i++)
{
len = fd(0, v[0][i]); if (len > max_len)max_len = len; }
cout<<max_len+(n-max_len-1)*2<<endl; return 0; }