[省选联考 2022] 填树(暂无数据)

该题目描述了一种无根树的权值修改操作,用户KK可以在树上选择一个节点,将其权值修改在给定范围内,并移动到相邻的权值为0的节点。目标是计算满足权值最大值与最小值差不超过K的所有不同树的数量及其权值之和,答案模10^9+7。输入包括节点数、权值差最大值、节点的修改范围和边的信息。输出要求包含两部分:符合条件的树的数量和权值之和。数据范围涉及节点数、修改范围和K的限制。

[省选联考 2022] 填树(暂无数据)

题目背景

2 s
512 MiB

题目描述

有一棵 nnn 个节点的无根树,刚开始树上每个节点的权值均为 000。KK 想对这棵树进行一些修改,他会任选一个节点作为初始的当前节点,然后重复以下动作:

  1. 将当前节点 iii 的权值修改为一个正整数 xxx,需满足 li≤x≤ril_i \leq x \leq r_ilixri。其中 li,ril_i, r_ili,ri 是输入中给出的两个正整数。
  2. 结束修改过程,或移动到一个与当前节点相邻的权值为 000 的节点(如果不存在这样的节点,则必须结束修改过程)。

现在 KK 有两个问题:

  1. 在修改结束后,可以得到多少棵不同的树,满足树上非零权值的最大值和最小值的差小于等于 KKK?其中 KKK 是输入中给出的一个正整数。

  2. 这些满足条件的树的权值之和为多少?(树的权值定义为这棵树上所有节点的权值之和)

你需要输出这两个问题的答案模 109+710^9 + 7109+7。我们认为两棵树不同当且仅当至少存在一个节点的权值不同。

温馨提示:

  1. KK 至少会修改一个节点(初始节点)。
  2. 实质上 KK 会修改树上的任意一条路径,最后需要满足这条路径上的点的权值最大值和最小值之差小于等于 KKK

输入格式

第一行两个正整数 n,Kn, Kn,K,表示节点数和权值差的最大值。

接下来 nnn 行,每行两个正整数 li,ril_i, r_ili,ri,表示第 iii 个节点修改后权值的最小值和最大值。

接下来 n−1n - 1n1 行,每行两个正整数 ui,viu_i, v_iui,vi,表示节点 uiu_iuiviv_ivi 之间有一条边。数据保证形成一棵树。

输出格式

输出两行,每行一个整数,分别表示第一问和第二问的答案模 109+710^9 + 7109+7 的值。注意,如果你不打算回答第二问,请在第二行任意输出一个整数。如果输出文件只有一行,则会因格式不符合要求被判 000 分。

输入输出样例

样例输入1
3 1
2 3
3 5
4 6
1 2
1 3
样例输出1
14
78
样例输入2
见附件中的 tree/tree2.in
样例输出2
见附件中的 tree/tree2.ans
样例输入3
见附件中的 tree/tree3.in
样例输出3
见附件中的 tree/tree3.ans

说明/提示

【样例解释 #1】

111222333444555666777888999101010111111121212131313141414
节点 111222333222333333333333333000000000000000000
节点 222000000333333444000444333333444555000000000
节点 333000000000000000444444444000000000444555666

表格中列出了全部 141414 棵满足条件的树,将这些树的权值加起来为 787878

【数据范围】

对于 100%100\%100% 的数据,1≤n≤2001 \leq n \leq 2001n2001≤li≤ri≤1091 \leq l_i \leq r_i \leq {10}^91liri1091≤K≤1091 \leq K \leq {10}^91K109

测试点$n \leq $ri,K≤r_i, K \leqri,K其他限制
111555101010
22230303010910^9109
33330303010910^9109
444303030500500500
555200200200200000200000200000
666200200200200000200000200000
77720020020010910^9109A
88820020020010910^9109A
99920020020010910^9109
10101020020020010910^9109

特殊限制 A:所有点构成一条链, 编号为 iii 的点和编号为 i+1i + 1i+1 的点之间有连边

【评分方式】

本题共 101010 个测试点,每个测试点 101010 分。其中回答正确第一问可得 777 分,回答正确第二问可得 333 分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值