萌新写最长链板子题写错了,求指教qwq
  • 板块CF14D Two Paths
  • 楼主DYYqwq
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/9/23 19:29
  • 上次更新2023/11/2 18:28:04
查看原帖
萌新写最长链板子题写错了,求指教qwq
719978
DYYqwq楼主2023/9/23 19:29
#include<bits/stdc++.h>
using namespace std;
struct node
{
	int to , nxt , w;
}e[410];
int n , tot = 0 , head[410] , u[410] , v[410];
long long dp[410];
void add(int u , int v , int w)
{
	++ tot;
	e[tot].to = v;
	e[tot].nxt = head[u];
	e[tot].w = w;
	head[u] = tot;
}
long long dfs(int u , int fa)
{
    long long qwq = 0;
    dp[u] = 0;
    for(int i = head[u] ; i != 0 ; i = e[i].nxt)
    {
        int v = e[i].to;
        if(v == fa) continue;
        dfs(v , u);
        qwq = max(qwq , dp[u] + dp[v] + e[i].w);
        dp[u] = max(dp[u] , dp[v] + e[i].w);
    }
    return qwq;
}
int main()
{
	scanf("%d" , &n);
	for(int i = 1 ; i < n ; i ++)
    {
		scanf("%d%d" , &u[i] , &v[i]);
		add(u[i] , v[i] , 1) , add(v[i] , u[i] , 1);
	}
    long long output = 0;
    for(int i = 1 ; i < n ; i ++)
    {
        long long ans = 1;
        ans *= 1ll * dfs(u[i] , v[i]) * dfs(v[i] , u[i]);
        output = max(output , ans);
    }
    printf("%lld\n" , output);
	return 0;
}
2023/9/23 19:29
加载中...