CF2063E.Triangle Tree

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

某日,一棵巨树在乡间生长。小 John 决定与他的童年伙伴鹰一起将其作为新家。小 John 计划用镀锌方钢在树上建造结构,但他不知道有些结构在物理上无法实现。给定一棵以节点 11 为根、包含 nn 个节点的有根树 ∗^{\text{∗}}。节点对 (u,v)(u,v) 被称为好对,当且仅当 uu 不是 vv 的祖先 †^{\text{†}} 且 vv 不是 uu 的祖先。对于任意两个节点,dist(u,v)\text{dist}(u,v) 定义为从 uu 到 vv 的唯一简单路径的边数,lca(u,v)\text{lca}(u,v) 定义为它们的最近公共祖先。

定义函数 f(u,v)f(u,v) 如下:

  • 若 (u,v)(u,v) 是好对,则 f(u,v)f(u,v) 为满足以下条件的整数 xx 的数量:存在一个由边长 dist(u,lca(u,v))\text{dist}(u,\text{lca}(u,v))、dist(v,lca(u,v))\text{dist}(v,\text{lca}(u,v)) 和 xx 构成的非退化三角形 ‡^{\text{‡}}。
  • 否则,f(u,v)=0f(u,v) = 0。

你需要计算以下值:

∑i=1n−1∑j=i+1nf(i,j).\sum_{i = 1}^{n-1} \sum_{j = i+1}^n f(i,j).

∗^{\text{∗}} 树是无环连通图。有根树是指定一个特殊节点为根的树。

†^{\text{†}} 节点 vv 的祖先是从 vv 到根的简单路径上的所有节点(包含根但不含 vv 自身)。根节点没有祖先。

‡^{\text{‡}} 当边长 aa、bb、cc 满足 a+b>ca+b \gt c、a+c>ba+c \gt b、b+c>ab+c \gt a 时,三角形为非退化的。

输入格式

每个测试包含多个测试用例。第一行包含测试用例数量 tt(1≤t≤1041 \le t \le 10^4)。接下来描述各个测试用例。

每个测试用例:

  • 第一行包含一个整数 nn(1≤n≤3⋅1051 \le n \le 3 \cdot 10^5)——树的节点数。
  • 接下来 n−1n-1 行,每行包含两个整数 uiu_i 和 viv_i,表示连接节点 uiu_i 和 viv_i 的边(1≤ui,vi≤n1 \le u_i, v_i \le n,ui≠viu_i \neq v_i)。保证输入构成一棵树。

保证所有测试用例的 nn 之和不超过 3⋅1053 \cdot 10^5。

输出格式

对于每个测试用例,输出一行答案。

输入输出样例

  • 输入#1

    4
    3
    1 2
    1 3
    3
    1 2
    3 2
    5
    2 3
    1 5
    4 2
    1 2
    11
    2 1
    2 3
    2 4
    4 5
    6 5
    5 7
    4 8
    8 9
    7 10
    10 11

    输出#1

    1
    0
    4
    29

说明/提示

第一个测试用例中,唯一满足 i<ji<j 的好对是 (2,3)(2,3)。此时 lca(2,3)=1\text{lca}(2,3)=1,两个距离均为 11。对于边长 11 和 11,唯一可能的 xx 值为 11,因此答案为 11。

第二个测试用例中没有好对,因此答案为 00。

第三个测试用例中,满足 i<ji<j 的好对有:

  • (2,5)(2,5):lca(2,5)=1\text{lca}(2,5)=1,距离为 11 和 11,x=1x=1。
  • (3,4)(3,4):lca(3,4)=2\text{lca}(3,4)=2,距离为 11 和 11,x=1x=1。
  • (3,5)(3,5):lca(3,5)=1\text{lca}(3,5)=1,距离为 22 和 11,x=2x=2。
  • (4,5)(4,5):lca(4,5)=1\text{lca}(4,5)=1,距离为 22 和 11,x=2x=2。
    因此答案为 1+1+1+1=41+1+1+1=4。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页