#P17457. PM15873 游行路线计数
PM15873 游行路线计数
题目描述
给定一张包含 个顶点的无向简单图,顶点编号为 。一次游行需要连续经过恰好五条街道,并且这五条边必须两两不同。游行过程中允许多次经过同一个顶点。也就是说,我们要统计所有长度为 的有向边序列,其中五条无向边互不相同。行走顺序不同视为不同游行方案。
图由伪随机过程生成。令 state=seed,按照 ,以及 的顺序枚举所有点对,每次执行:
state = (state * 1103515245 + 12345) mod 2^31。
如果新的 state < threshold,就加入无向边 。
随后给出一个偶数长度数组 toggle。对每一对 toggle[2i], toggle[2i+1]:如果对应边当前存在就删除,否则就加入。
求最终图中不同游行方案的数量。答案保证可以用 64 位有符号整数表示。
输入格式
第一行四个整数 L N seed threshold,其中 是数组 toggle 的长度。
如果 ,第二行包含 个整数,依次为 toggle[0], toggle[1], ..., toggle[L-1]。如果 ,没有第二行数据。
输出格式
输出一个整数,表示不同游行方案的数量。
数据范围
- ;
- ;
- ;
- ,且 为偶数;
- 每个
toggle元素均在 内; - 对每个 ,
toggle[2i] < toggle[2i+1]。
样例 1
10 10 47 0
0 1 1 7 2 7 3 4 2 3
2
样例 2
0 4 47 2147483647
72