请求增强数据
查看原帖
请求增强数据
773502
Billhqh9楼主2024/8/10 15:45

这题的数据太水,以至于我的这份代码连样例都过不了,却能水过去,直接AC。可以把样例或者别的什么数据添一下,卡掉这种代码。

//#include<iostream>
//#include<fstream>
#include<cstdio>
//#include<vector>
//#include<cstring>
//#include<algorithm>
using namespace std;

const int N=100005;
struct node
{
	int to,w,next;
}Edge[N*2];

int n,u,v,w,Et,head[N],dp[N],ans;
int max(int AA,int BB)
{
	return (AA>BB?AA:BB);
}

inline int read()
{
	char c;
	int num;
	do{
		c=getchar();
	}while(c<'0'||c>'9');
	num=c-'0';
	c=getchar();
	while(c>='0'&&c<='9')
	{
		num=num*10+c-'0';c=getchar();
	}
	return num;
}

void add(int from,int to,int length)
{
	Edge[++Et]=(node){to,length,head[from]};
	head[from]=Et;
}
void dfs(int Rot,int fa)
{
	dp[Rot]=0;
	for(int i=head[Rot];i!=-1;i=Edge[i].next)
	{
		if(Edge[i].to!=fa)
		{
			dfs(Edge[i].to,Rot);
			dp[Rot]=max(dp[Rot],Edge[i].w+dp[Edge[i].to]);
		}
	}
	ans=max(ans,dp[Rot]);
}
int main()
{
	n=read();
	for(int i=1;i<=n;i++)
		head[i]=-1;
	for(int i=1;i<n;i++)
	{
		u=read(),v=read(),w=read();
		add(u,v,w);
		add(v,u,w);
	}
	for(int i=n;i>=n/3*2;i--)dfs(i,-1);
//	printf("%d\n",ans);
	printf("%d",(11+10+ans)*ans/2);
	return 0;
}
2024/8/10 15:45
加载中...