P11765 「KFCOI Round #1」回首

题目背景

控制住不爱一个人很难,因为爱是自由意识的沉沦。 其实从始至终,只要你回首,他就永远都陪伴在你身后。

题目描述

你一共有 $n$ 条重要的回忆,每条回忆有一个重要系数 $k_i$,并且这 $n$ 条回忆彼此之间有 $m$ 个前后关系。 每一条关系 $u,v(1\le u,v\le n)$ 表示 $u$ 发生的时间**恰好**在 $v$ 前。 可能是因为时间过久导致你的记忆错乱,在时间线中可能会出现环。 一开始,所有点的重要度均为 $0$,一共你会进行 $T$ 次回想操作。 若当前正在进行第 $t$ 次操作: * 操作前,对于一条回忆 $x_i$,它的重要度会乘上重要系数 $k_i$。 * 操作中,对于一条回忆 $x_i$,如果有**恰好**发生在回忆 $x_i$ 前的回忆 $y_i$,那么将回忆 $x_i$ 的重要度增加 $y_i$ 在本次乘上重要系数 $k_i$ **之前**的重要度。否则回忆 $x_i$ 的重要度增加 $t$。 当然,为了防止一条回忆过于重要,输出每条回忆的重要度对 $998244353$ 取余的结果。 **** 形式化题意: 给定一个 $n$ 个节点,$m$ 条边的有向图,并保证不会出现重边。初始所有点的点权都为 $0$。 一共将进行 $T$ 次操作。 对于第 $t$ 次操作,首先将所有点的点权乘上一个给定的值 $k_i$。 接下来,对于一个点 $x_i$,如果有连向它的点 $y_i$,那么将 $x_i$ 的权值加上 $y_i$ 在本次乘上 $k_i$ 之前的权值。否则如果没有连向它的点,$x_i$ 的权值加上 $t$。 输出的所有点的权值对 $998244353$ 取余的结果。

输入格式

输出格式

说明/提示

样例解释 1: ![](https://cdn.luogu.com.cn/upload/image_hosting/9h5jwi1l.png) 第一次操作时,所有的点重要度为 $0$。 乘上重要系数后依旧为 $0$。 第一个点的重要度加上当前正在进行的回想操作次数 $1$。 其余点均加上 $0$。 第一次操作后,所有点的重要度分别为 `1,0,0,0,0`。 类似的,第二次操作后,所有点的重要度分别为 `3,1,0,1,0`。 第三次操作后,所有点的重要度分别为 `6,5,1,8,1`。 **** ### 数据范围 **本题采用捆绑测试**。 - Subtask 1(20 points):$1\le n \le 10$,$1\le T \le 10$。 - Subtask 2(20 points):$1\le T\le 10^5$。 - Subtask 3(60 points):无特殊限制。 对于所有测试数据,$1\le n\le100$,$1\le m\le300$,$1\le T\le10^{18}$,$1\le k_i\le10^9$,$1\le x_i,y_i\le n$。