90分求调,玄关
查看原帖
90分求调,玄关
1046030
Rainbow_rabbit楼主2024/10/3 17:21
#include <bits/stdc++.h>
using namespace std ;
#define int long long

struct node
{
	int d , b ;
};
int n , maxx ;
bool vis[200005] ;
vector <node> v[200005] ;

bool cmp( node a , node b )
{
	return a.b > b.b ;
}

void dfs( int x , int step , int sum )
{
	if( vis[x] ) return ;
	maxx = max( maxx , sum ) ;
	vis[x] = 1 ;
	if( step == 4 )
	{
		vis[x] = 0 ;
		return ;
	}
	for( int i = 0 ; i < v[x].size() ; i ++ )
	{
		dfs(v[x][i].d , step + 1 , sum + v[x][i].b );
	}
	vis[x] = 0 ;
}
 
signed main()
{
	cin >> n ;
	for( int i = 1 ; i < n ; i ++ )
	{
		int x , y ;
		cin >> x >> y ;
		node xy ;
		xy.b = y ;
		xy.d = x ;
		v[i + 1].push_back(xy) ;
		xy.d = i + 1 ;
		v[x].push_back(xy) ;
	}
	for( int i = 1 ; i <= n ; i ++ )
	{
		if( v[i].size() >= 3 )
		{
			sort( v[i].begin() , v[i].end() , cmp ) ;
			maxx = max( maxx , v[i][0].b + v[i][1].b + v[i][2].b ) ;
			continue ;
		}
		dfs(i , 1 , 0 ) ;
	}
	cout << maxx ;
	return 0 ;
}
  • 测试点6:Wrong Answer.wrong answer On line 1 column 3, read 4, expected 7.
  • 测试点15:Wrong Answer.wrong answer On line 1 column 3, read 8, expected 9.
2024/10/3 17:21
加载中...