[QkOI#R1] Quark and Graph
题目背景
SPFA 被卡时在做什么?有没有空?可以来计数吗?
题目描述
现有一张边权全为 $1$ 的有标号简单无向连通图,其包含 $n$ 个节点和 $m$ 条边,已知该图上点 $1$ 到所有点的最短路长,求这张图有多少种形态。
特别地,我们认为点 $1$ 到点 $1$ 的最短路为 $0$。
两个图的形态不同当且仅当存在至少一条边 $(u,v)$ 在一张图中出现且在另一张图中没出现。
**由于 little_sun 太巨了,所以数据保证至少存在一张满足条件的图。**
答案对 $998244353$ 取模。
输入输出格式
输入格式
第一行两个正整数 $n,m$ —— $n$ 表示图的节点数,$m$ 表示图的边数。
第二行 $n$ 个非负整数 $d_1,d_2,\cdots,d_n$ 表示点 $1$ 到其它点的最短路。
输出格式
输出一行一个整数表示你的答案。
输入输出样例
输入样例 #1
4 3
0 1 1 2
输出样例 #1
2
输入样例 #2
5 5
0 1 1 2 2
输出样例 #2
12
输入样例 #3
8 12
0 2 2 2 2 1 1 1
输出样例 #3
128601
说明
### 样例解释
对于第一个样例,有 $\{(1,2),(1,3),(2,4)\}$ 和 $\{(1,2),(1,3),(3,4)\}$ 两种形态。
对于第二个样例,我想到了一个绝妙的解释,可惜这里空白太小,写不下。
### 数据范围
**本题采用捆绑测试。**
- Subtask 1(10 pts),满足 $n\le 7$,$m\le 14$,时限 1s;
- Subtask 2(20 pts),满足 $n\le 50$,$m\le 600$,时限 1s;
- Subtask 3(20 pts),满足 $n\le 1000$,$m\le 5000$,时限 1s;
- Subtask 4(50 pts),无特殊限制,时限 3s。
对于 $100\%$ 的数据,满足 $n\le 10^5$,$m\le 2\times 10^5$。设 $t_i=\sum_j[d_j=i]$,还应满足 $\sum_{i}t_it_{i-1}\le 2\times 10^5$。
**本题强制开启 O2 优化。**