首页 > 代码库 > 套题T5//各种树

套题T5//各种树

树(tree

【题目描述】

方方方种下了三棵树,一年后,第一棵树长出了n个节点。

方方方会向你提出m个询问,每个询问给出两个数ij,你需要回答i号节点和j号节点在树上的距离。

【输入数据】

第一行两个整数nm。接下来n-1行每行两个整数ab表示一条边。接下来m行每行两个整数ij表示询问。

【输出数据】

m行,每行一个整数表示答案。

【样例输入】

3 2

1 2

1 3

3 2

1 1

【样例输出】

2

0

【数据范围】

对于30%的数据,n,m<=1000

对于100%的数据,n,m<=500000

 


 

 

 

 

 

 

 

 

 

 


 

树(tree2

 

【题目描述】

 

方方方种下了三棵树,两年后,第二棵树长出了n个节点,其中1号节点是根节点。

 

方方方进行m次操作,每个操作为:

 

1)给出两个数ix,将第i个节点的子树中,与i距离为斐波那契数的节点权值+x(包括i本身)。

 

2)给出一个数i,求出第i个节点的子树中,与i距离为斐波那契数的节点的权值和(包括i本身)。

 

【读入数据】

 

第一行两个整数nm。接下来n-1行每行两个整数ab表示一条边。接下来m行每行第一个数表示操作类型,接下来12个数表示i (x)

 

【读出数据】

 

对于每个(2)操作,输出一行一个整数表示答案。

 

【样例输入】

 

5 3

 

1 2

 

2 3

 

3 4

 

4 5

 

1 1 1

 

1 2 2

 

2 4

 

【样例输出】

 

1

 

【数据范围】

 

对于30%的数据,n,m<=1000

 

对于100%的数据,n,m<=100000|x|<=10^9

 


 

 

 

 

 

 

 

 

 


 

 

 

树(tree3

 

【题目描述】

 

方方方种下了三棵树,两年后,第二棵树长出了n个节点,其中1号节点是根节点。

 

方方方使用魔法为每个节点按以下规则染色:

 

(1) 每个节点为红色,黑色或白色。

 

(2) 对于每个叶节点i,有ribiwi三个参数,满足ri+bi+wi=1。方方方分别以ribiwi的概率给i染上红色,黑色和白色。

 

(3) 对于每个非叶节点,设它的子树大小为x,当它的子树中的其它x-1个节点都被染色后,对它进行染色。假设这x-1个节点分别有rbw个红色、黑色和白色,那么它被染成红色、黑色、白色的概率分别为r/(x-1)b/(x-1)w/(x-1)

 

染色结束后,方方方按以下规则计算这棵树的魔法值:

 

(1) 对于每个有序点对(i,j),如果它们的颜色集合为{红色,黑色}ij的祖先,魔法值+rb

 

(2) 对于每个有序点对(i,j),如果它们的颜色集合为{红色,白色}ij的祖先,魔法值+rw

 

(3) 对于每个有序点对(i,j),如果它们的颜色集合为{黑色,白色}ij的祖先,魔法值+bw

 

你需要求出魔法值的期望对998244353取模的结果。

 

【读入数据】

 

第一行四个整数nrbrwbw,接下来n-1行每行两个整数ab表示一条边。接下来n行每行三个整数ribiwi,如果i是叶子节点,保证ri+bi+wi=1,否则ri=bi=wi=0

 

【读出数据】

 

输出魔法值的期望对998244353取模的结果。

 

【样例读入】

 

2 1 2 3

 

1 2

 

1 0 0

 

499122177 499122177 0

 

【样例输出】

 

499122177

 

【数据范围】

 

对于10%的数据,n<=10

 

对于30%的数据,n<=50

 

对于另外20%的数据,rb=rw=bw

 

对于再另外20%的数据,每个叶子节点i满足ri=bi=wi

 

对于100%的数据,n<=10000<=rb,rw,bw,ri,bi,wi<998244353

 


 

套题T5//各种树