#P11448. 「ALFR Round 3」D 核裂变

    ID: 12210 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>洛谷原创O2优化广度优先搜索 BFS洛谷月赛

「ALFR Round 3」D 核裂变

背景

可爱的松鼠跑去学 PhO 啦。

题目描述

有 nn 个放射性原子要进行 kk 秒的裂变反应。如果在第 tt 秒开始时原子 ii 被 b (b>0)b\ (b>0) 个中子轰击了,那它就会在第 tt 秒内释放 ai+ba_i + b 单位能量,并向编号为 xi,1,xi,2,…,xi,aix_{i,1},x_{i,2},\dots,x_{i,a_i} 的所有原子各释放 11 个中子。这样,在第 t+1t+1 秒开始时分别击中的 xi,1,xi,2,…,xi,aix_{i,1},x_{i,2},\dots,x_{i,a_i} 的中子数量都将增加 11(如果 t=kt=k,即这是最后一秒,那么被轰击的原子不会释放中子)。如果在这一秒开始时某个原子没被中子击中,则其不会释放能量与中子。

每一秒开始时,编号为 v1,v2,…,vmv_1,v_2,\dots,v_m 的原子都会被 11 个中子轰击。那么,从第 11 秒开始,到第 kk 秒的终止时刻为止,每个原子会释放多少能量?

答案对 998244353998244353 取模!

输入格式

第一行三个整数 n,k,mn,k,m,表示原子的个数,反应的时间与每一秒开始时被轰击的原子数。

接下来一行 mm 个整数 v1,v2,…,vmv_1,v_2,\dots,v_m。

接下来 nn 行输入每个原子的信息,格式如下:

第 ii 行 ai+1a_i + 1 个整数,第一个数为 aia_i,接下来 aia_i 个数 xi,1,xi,2,…,xi,aix_{i,1},x_{i,2},\dots,x_{i,a_i}。

输出格式

输出 11 行,共 nn 个数,第 ii 个数是原子 ii 从第 11 秒开始,到第 kk 秒的终止时刻为止释放的总能量,答案对 998244353998244353 取模。

3 3 1
1
1 2
1 3
1 1
6 4 2

3 1000000000000000000 1
1
1 2
1 3
1 1
151723985 433897441 433897439

提示

样例 #1 解释:

  • 第一秒,原子 11 被 11 个中子轰击,释放 11 中子到原子 22,释放 22 能量。
  • 第二秒,原子 11 被 11 个中子轰击,释放 11 中子到原子 22,释放 22 能量。同时原子 22 被 11 个中子轰击,释放 11 个中子到原子 33,释放 22 能量。
  • 第三秒,原子 11 被 11 个中子轰击,释放 22 能量。同时原子 22 被 11 个中子轰击,释放 22 能量。同时原子 33 被 11 个中子轰击,释放 22 能量。

所以原子 11 共释放了 66 能量,原子 22 释放了 44 能量,原子 33 释放了 22 能量。

数据范围

子任务 分值 限制
00 55 m=n,vi=i,ai=1,xi,1=1m=n,v_i=i,a_i=1,x_{i,1}=1
11 1010 m=1,v1=1,ai=1,xi,1=(i mod n)+1m=1,v_1=1,a_i=1,x_{i,1}=(i\bmod n)+1
22 2020 n,∑ai≤103n,\sum a_i\le10^3,1≤k≤1061\le k\le10^6
33 3030 1≤k≤1061\le k\le10^6
44 3535 -

对于所有数据,$1\le m\le n\le 5\times10^5,1\le \sum a_i\le5\times10^5$,1≤k≤10181\le k\le10^{18},0≤ai≤5×1050 \leq a_i \leq 5 \times 10^5,且 v1,v2,…,vmv_1,v_2,\dots,v_m 互不相同且是 [1,n][1,n] 内的整数,xi,1,xi,2,…,xi,aix_{i,1},x_{i,2},\dots,x_{i,a_i} 互不相同且是 [1,n][1,n] 内的整数。

本题输入量较大,请使用较快的 I/O 方式。