Tom and game

Accepts: 0
Submissions: 12
Time Limit: 6000/3000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
Tom喜欢和Tony玩游戏。
他们认为一个有序四元组(t,i,j,k)是合法的,当且仅当满足:
1、$1\leq i,j,k\leq t$
2、存在一个不小于k的正整数s,满足s既是i的约数,又是j的约数。
他们准备好一些四元组,两人轮流进行操作,不能操作的人就输了,一次合法操作的步骤是:
1、选择一个四元组A。
2、将A变成一个字典序比它小的合法四元组B。
比较两个四元组大小时,先比较第一个元素的大小,若相等,再比较第二个元素的大小,依此类推。
他们认为每次都重新准备四元组太麻烦了,所以他们画了一个树,树的每个点上都有一个四元组。每次游戏时,每个人都随机选择一个点,在树上画出连接这两个点的路径,将路径中所有点(包括这两个点)上的四元组抄下来进行游戏。
Tom每次都要做先手,他想知道他获胜的概率。
输入描述
输入包含多组数据(大约8组)。对于每组数据,第一行一个正整数n,表示树上有n个结点,从1开始编号。接下来n-1行,每行两个正整数i、j,表示i、j之间有一条边。接下来n行,第i行有四个正整数a、b、c、d,表示编号为i的点上的四元组是(a,b,c,d)。
$1\leq n\leq 10000;1\leq i,j\leq n;1\leq a,b,c,d\leq 10000$
保证每个结点上的四元组都是合法的。
输出描述
对于每组数据,输出一行一个分数"a/b",表示获胜概率,要求a、b互质。若必败,要输出"0/1"。
输入样例
2
1 2
1 1 1 1
2 1 2 1
5
1 2
2 3
3 4
4 5
1 1 1 1
2 1 1 1
2 1 2 1
2 2 1 1
1 1 1 1
输出样例
3/4
3/5