loj#P4113. 「联合省选 2024」虫洞

    ID: 36931 传统题 文件IO:wormhole 2000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>文件 IO联合省选2024

「联合省选 2024」虫洞

题目描述

E 国有 nn 个城市,编号为 11nn。为了让城市之间的来往更加便利,E 国的交通部想在 nn 个城市间建造一些虫洞。每条虫洞是一条单向的从某个城市到另一个城市的通道。允许通道的起点和终点是同一个城市,也允许两个城市之间有多个虫洞连接。

为了区分虫洞的建造时间,交通部给每一条虫洞一个正整数的编号。

我们称一种虫洞的建造方案是好的,若它满足如下四个条件:

  1. 存在一个非负整数 dd 使得每个城市恰好是 dd 条虫洞的起点,也恰好是 dd 条虫洞的终点。
  2. 对于每个城市而言,在以它为起点的虫洞的编号中,11dd 恰好各出现一次。
  3. 对于每个城市而言,在以它为终点的虫洞的编号中,11dd 恰好各出现一次。
  4. 任意选取一个城市 uu 和正整数 1j1,j2d1\le j_1, j_2 \le d。设从 uu 出发,先经过一次编号为 j1j_1 的虫洞,再经过一次编号为 j2j_2 的虫洞,到达城市 v1v_1。设从 uu 出发,先经过一次编号为 j2j_2 的虫洞,再经过一次编号为 j1j_1 的虫洞,到达城市 v2v_2。则条件 v1=v2v_1=v_2 必定满足。

特别地,不建造任何虫洞的方案也是好的。

现在,建造师已建造了 mnmn 条虫洞,且给了它们 1m1\sim m 的编号,此时这样的建造方案是好的。他想要新建造 knkn 条虫洞,并给它们 (m+1)(m+k)(m+1)\sim (m+k) 的编号。他必须保证这 (m+k)n(m + k)n 条虫洞形成的建造方案仍然是好的。他想知道有多少种新建造 knkn 条虫洞的方法,使得这 (m+k)n(m + k)n 条虫洞形成的建造方案是好的。

由于答案很大,你只需要求出方案数除以 998244353998244353 的余数。

输入格式

从文件 wormhole.in 中读入数据。

输入的第一行四个非负整数 c,n,m,kc, n, m, k,其中 cc 表示测试点编号。样例中的 cc 表示该样例的数据范围与第 cc 个测试点的数据范围相同。

接下来 nmnm 行,每行三个正整数 u,v,wu,v,w,表示一条编号为 ww 的,起点为 uu 号城市,终点为 vv 号城市的虫洞。

输出格式

输出到文件 wormhole.out 中。

输出一行整数,表示方案数除以 998244353998244353 的余数。

1 4 1 1
1 2 1
2 1 1
3 4 1
4 3 1
8

在该组样例中,已经建造的编号为 11 的虫洞为 12,21,34,431\to 2,2\to 1,3\to 4,4\to 3。为了使 88 条虫洞形成的建造方案是好的,新建造的编号为 22 的虫洞可能有 88 种情形:

  1. 11,22,33,441\to 1, 2\to 2, 3\to 3, 4\to 4
  2. 11,22,34,431\to 1, 2\to 2, 3\to 4, 4\to 3
  3. 12,21,33,441\to 2, 2\to 1, 3\to 3, 4\to 4
  4. 12,21,34,431\to 2, 2\to 1, 3\to 4, 4\to 3
  5. 13,24,31,421\to 3, 2\to 4, 3\to 1, 4\to 2
  6. 13,24,32,411\to 3, 2\to 4, 3\to 2, 4\to 1
  7. 14,23,31,421\to 4, 2\to 3, 3\to 1, 4\to 2
  8. 14,23,32,411\to 4, 2\to 3, 3\to 2, 4\to 1

样例 2

见选手目录下的 wormhole/wormhole2.inwormhole/wormhole2.ans

该样例的 c=2c = 2,它满足第 2 个测试点的限制条件。

样例 3

见选手目录下的 wormhole/wormhole3.inwormhole/wormhole3.ans

该样例的 c=5c = 5,它满足第 5 个测试点的限制条件。

样例 4

见选手目录下的 wormhole/wormhole4.inwormhole/wormhole4.ans

该样例的 c=7c = 7,它满足第 7 个测试点的限制条件。

样例 5

见选手目录下的 wormhole/wormhole5.inwormhole/wormhole5.ans

该样例的 c=9c = 9,它满足第 9 个测试点的限制条件。

样例 6

见选手目录下的 wormhole/wormhole6.inwormhole/wormhole6.ans

该样例的 c=11c = 11,它满足第 11 个测试点的限制条件。

样例 7

见选手目录下的 wormhole/wormhole7.inwormhole/wormhole7.ans

该样例的 c=15c = 15,它满足第 15 个测试点的限制条件。

样例 8

见选手目录下的 wormhole/wormhole8.inwormhole/wormhole8.ans

该样例的 c=17c = 17,它满足第 17 个测试点的限制条件。

样例 9

见选手目录下的 wormhole/wormhole9.inwormhole/wormhole9.ans

该样例的 c=20c = 20,它满足第 20 个测试点的限制条件。

样例 10

见选手目录下的 wormhole/wormhole10.inwormhole/wormhole10.ans

该样例的 c=22c = 22,它满足第 22 个测试点的限制条件。

子任务

对于所有测试点,

  • 1n21031\le n \le 2\cdot 10^30m1030 \le m \le 10^31k10151 \le k \le 10^{15}
  • 1u,vn1 \le u,v \le n1wm1 \le w \le m
  • 保证初始建造的 mnmn 条虫洞构成一个号的建造方案。
测试点编号 nn mm kk
141\sim 4 5\le 5 3\le 3 3 \le 3
565\sim 6 2103\le 2\cdot 10^3 =0=0 =1=1
787\sim 8 102\le 10^2 =1=1
9109\sim 10 10\le 10
111411\sim 14 103\le 10^3
151615\sim 16 =0=0 1015\le 10^{15}
171917\sim 19 10\le 10
202120\sim 21 2103\le 2\cdot 10^3 103\le 10^3 102\le 10^2
222522\sim 25 1015\le 10^{15}

提示

本题部分测试点输入规模较大,我们推荐你使用较为快速的读入方式。