#P10037. 「FAOI-R2」霜雪千年 (C)

    ID: 9241 Type: RemoteJudge 2000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>动态规划,dp数学2024洛谷原创O2优化前缀和分块

「FAOI-R2」霜雪千年 (C)

题目背景

在这老街回眸 烟云中追溯我是谁
只消暮雨点滴 便足以粉饰这是非
待这月色涌起 谁人轻叩这门扉
苔绿青石板街 斑驳了流水般岁月
小酌三盏两杯 理不清缠绕的情结
在你淡漠眉间 瞥见离人的喜悲霜雪

洛天依看到了一颗雪中的梨树,梨树的根中有有限的热量,它可以向上需要传递热量到其他节点。但风雪很大,每时每刻每个节点热量都会增加会增加或减少,热量过低的节点会掉落。

题目描述

具体来说,这棵梨树可以被抽象为一颗以 11 号结点为根的树,初始时每个点都是白色,每个点有热量 aia_i,初始时 11 以外所有点的热量都为 00a1=ka_1=k。我们设一个累计热量 bb

我们通过如下操作定义一个序列 {vt}\{v_t\} 的权值:

  • 从小到大度过 1,2,3,,t1,2,3,\dots,ttt 个时刻。
  • 在第 xx 个时刻,执行 bb+vxb\gets b+v_x
  • 对于父子 (u,v)(u,v),设 uu 为父亲,可以选定整数 h[0,au]h\in[0,a_u] 执行操作 auauha_u\gets a_u-havav+ha_v\gets a_v+h,之后该时刻内形如 (v,w)(v,w)vv 为父亲的父子不能操作。
  • 若一个点 ii 满足 ai+b<0a_i+b<0,将 ii 以及 ii 的子树中的点染成黑色。
  • 执行最优操作以最大化第 tt 时刻后的白点个数,该序列热量即为最大白点个数。

定义一个序列 {vt}\{v_t\} 合法当且仅当 i[1,t]\forall i\in[1,t]vi[0,m]\lvert v_i\rvert\in[0,m]。给定 tt,求出所有合法序列 {vt}\{v_t\} 的权值之和对 998244353998244353 取模的值。

输入格式

第一行四个非负整数 n,m,t,kn,m,t,k,分别表示树的结点个数,viv_i 的取值范围,时刻数,初始时的 a1a_1

接下来 n1n-1 行,每行两个正整数 u,vu,v,表示 uu 号结点与 vv 号结点之间有一条边。

输出格式

输出所有合法序列的和对 998244353998244353 取模后的结果。

1 1 1 1
3
3 1 2 2
1 2
1 3
22
5 2 3 5
1 2
2 3
2 4
4 5
407
10 5 6 44
1 2
1 3
2 5
2 6
3 4
6 7
6 8
4 9
9 10
10465095

提示

样例解释

样例 33 解释:

对于一种 {v3}={1,0,2}\{v_3\}=\{1,0,-2\} 的情况,一种最优操作如下:

  • 第一个时刻,11 号结点传递 44 热量给 22 号结点,操作完毕后 a={1,4,0,0,0}a=\{1,4,0,0,0\}b=1b=1
  • 第二个时刻,22 号结点传递 22 热量给 44 号结点,操作完毕后 a={1,2,0,2,0}a=\{1,2,0,2,0\}b=1b=1
  • 第三个时刻,22 号结点传递 11 热量给 33 号结点,44 号结点传递 11 热量给 55 号结点,操作完毕后 a={1,1,1,1,1}a=\{1,1,1,1,1\}b=1b=-1
  • 所有时刻结束,因为始终没有 ai+b<0a_i+b<0 的点,所以所有结点为白色。

样例 44 解释:

对于一种 {v6}={1,2,1,2,1,2}\{v_{6}\}=\{1,2,1,2,1,2\} 的情况,一种最优操作如下:

  • 161\sim 6 个时刻,不进行操作。
  • 所有时刻结束,因为始终没有 ai+b<0a_i+b<0 的点,所以所有结点为白色。

数据范围与约定

本题采用捆绑测试。

Subtask 编号 nn \le mm \le tt \le kk \le 分值 特殊性质
00 44 4040 2020
11 2×1052 \times 10^5 2020 1×1051 \times 10^5 1010 A
22 3×1053 \times 10^5 2020
33 5050 100100 1010
44 500500 4040
  • 特殊性质 A:保证树的形态是菊花。

对于 100%100\% 的数据,1n2×1051\leq n\leq 2\times 10^51k3×1051\leq k\leq 3\times 10^51m501\leq m\leq 501t5001\leq t\leq 500,保证输入构成一棵树。