hzwer%%%,czy%%%
题目描述 Description

czy很火。因为又有人说他虚了。为了证明他不虚,他决定要在这次比赛AK。现在他正在和别人玩一个游戏:在一棵树上随机取两个点,如果这两个点的距离是4的倍数,那么算czy赢,否则对方赢。现在czy想知道他能获胜的概率。

输入 Input

本题多组数据。对于每组数据:
第一行一个数n,表示树上的节点个数。
接下来n1条边a,b,c描述ab有一条长度为c的路径。
n=0时表示读入结束。
数据组数不超过10。无部分分。

输出 Output

最终输出的概率要求分数的分子和分母的和尽量小且非负数。

样例输入 Sample Input

5
1 2 1
1 3 2
1 4 1
2 5 3
0

样例输出 Sample Output

7/25

限制 Limits

数据范围
[树的点分治] 不虚就是要AK
Time Limit : 2s & Memory Limit : 128MB

树上询问两点间距离,当然是点分治题……但是4的倍数?
统计disi为在4的剩余系下两点间距离为i的点对个数。然后合并就容易推得了……然后注意不同子树之间统计的处理(再记录一个dp数组处理)。
最后的答案?
先考虑在树上随意取点,考虑到点分治统计中的无序性(也就是同一条路径会被统计两次),所以随意取点的可能性为n2,取出为4的倍数的路径数需要乘以2。因为0也是4的倍数,取到的两点相同时可以计入答案,可是点分治里没有统计这种情况,所以要加上n,然后化简个分数,输出答案。
时间复杂度O(Tnlog2n)
Code

相关文章:

  • 2022-01-04
  • 2022-01-25
  • 2022-01-29
  • 2021-11-07
  • 2021-05-17
  • 2021-08-01
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-31
  • 2022-12-23
  • 2021-11-20
  • 2021-06-28
  • 2022-12-23
  • 2022-02-23
  • 2021-10-10
相关资源
相似解决方案