AT_utpc2022_e.Parallel Swapping
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有两个长度为 N 的排列 P=(P1,P2,…,PN), Q=(Q1,Q2,…,QN)。一开始 Pi=Qi=i(1≤i≤N)。对于这两个排列,可以执行如下的操作,次数不限(可以为零次):
- 选择一个整数 i,满足 1≤i≤M。将 P 的第 ai 位和第 bi 位的元素交换,同时将 Q 的第 ci 位和第 di 位的元素交换。
请你求出,可以通过若干次操作后得到的 (P,Q) 状态的不同组数,并对 998244353 取模。
输入格式
输入按如下格式从标准输入读入:
N M
a1 b1 c1 d1
⋮
aM bM cM dM
输出格式
输出答案,表示可能的不同 (P,Q) 状态的组数,对 998244353 取模。
输入输出样例
输入#1
3 1 1 2 2 3
输出#1
2
输入#2
4 3 1 2 2 4 2 3 1 2 1 4 2 3
输出#2
288
输入#3
2 0
输出#3
1
说明/提示
样例解释 1
可能得到的 (P,Q) 状态为 P=(1,2,3), Q=(1,2,3) 和 P=(2,1,3), Q=(1,3,2),共计 2 种。
数据范围
- 输入均为整数。
- 2≤N≤5000
- 0≤M≤5000
- 1≤ai,bi,ci,di≤N
- ai<bi
- ci<di
- 若 i=j,则 (ai,bi,ci,di)=(aj,bj,cj,dj)
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?