题目背景
完全抽象的,只在数学中被允许的无限的「自由」。
「自由之光」,未知数的骑士 —— 知修。哪怕面对的是无限的绝望,他也能将其转变为无限的自由。
题目描述
给定一个 n 个节点、m 条边的有向图,节点和边都有权值,保证对于任意两个节点 u,v,从 u 指向 v 的边最多只有一条。
路径 P 是一个节点序列 u1,⋯,uk,其中对于任意 1≤i<k,ui 有指向 ui+1 的边(这条边记为 ei)。则定义 P 的边权是所有 ei 的权值的乘积,其点权是所有 ui 权值的和,其长度为 k。特别地,如果 k=1,则定义其边权为 1。
对于两条路径 P1,P2,长度分别为 L1,L2,包含的节点序列记为 u1,⋯,uL1 和 v1,⋯,vL2。定义它们是相同的,当且仅当 L1=L2,且对于所有 1≤i≤L1 有 ui=vi。
给定正整数 V,请求出所有不相同的「点权为 V 的路径」的边权之和。答案可能很大,请对 998244353 取模后输出。
题目的输入数据下载链接:Link1,提取码:92ih
;
备用下载路径与操作方法:Link2。
输入格式
第一行一个正整数 T,表示测试点编号。
第二行三个正整数 n,m,V,意义如题目描述。
第三行 n 个正整数 a1,⋯,an,ai 表示了编号为 i 的节点的权值。
接下来 m 行,每行三个正整数 ui,vi,wi,表示编号为 ui 的点有一条权值为 wi 的边指向 vi。
输出格式
输出一行一个整数,表示答案。
0
3 5 12
2 4 6
2 3 5
1 2 3
3 1 7
3 2 11
1 1 2
155
提示
【样例 1 解释】
样例中 V=12,满足点权为 12 的路径有:
(给出的是路径中节点的编号,样例中每个节点的权值恰好为其编号的两倍)
- 1→1→1→1→1→1,边权为 25=32。
- 1→1→1→1→2,边权为 3×23=24。
- 1→2→3,边权为 3×5=15。
- 2→3→1,边权为 5×7=35。
- 3→1→1→1,边权为 7×22=28。
- 3→1→2,边权为 7×3=21。
故答案为 32+24+15+35+28+21=155。
【数据信息】
测试点编号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
测试点名称 |
W |
K_1 |
K_2 |
K_3 |
MP_1 |
MP_2 |
MP_3 |
MP_4 |
R |
Finale |
测试点分数 |
10 |
对于全部的数据,1≤n≤105,1≤m≤min(n2,106),1≤V≤1010000000。
【提示】
时间是宝贵的。代码运行需要时间,你的思考也需要时间。好在这两件事可以同时进行,希望你可以在这有限的时间内做更多的事,拿到更好的成绩。