#P6516. [QkOI#R1] Quark and Graph

[QkOI#R1] Quark and Graph

题目背景

SPFA 被卡时在做什么?有没有空?可以来计数吗?

题目描述

现有一张边权全为 11 的有标号简单无向连通图,其包含 nn 个节点和 mm 条边,已知该图上点 11 到所有点的最短路长,求这张图有多少种形态。

特别地,我们认为点 11 到点 11 的最短路为 00

两个图的形态不同当且仅当存在至少一条边 (u,v)(u,v) 在一张图中出现且在另一张图中没出现。

由于 little_sun 太巨了,所以数据保证至少存在一张满足条件的图。

答案对 998244353998244353 取模。

输入格式

第一行两个正整数 n,mn,m —— nn 表示图的节点数,mm 表示图的边数。

第二行 nn 个非负整数 d1,d2,,dnd_1,d_2,\cdots,d_n 表示点 11 到其它点的最短路。

输出格式

输出一行一个整数表示你的答案。

4 3
0 1 1 2
2
5 5
0 1 1 2 2

12
8 12
0 2 2 2 2 1 1 1
128601

提示

样例解释

对于第一个样例,有 {(1,2),(1,3),(2,4)}\{(1,2),(1,3),(2,4)\}{(1,2),(1,3),(3,4)}\{(1,2),(1,3),(3,4)\} 两种形态。

对于第二个样例,我想到了一个绝妙的解释,可惜这里空白太小,写不下。

数据范围

本题采用捆绑测试。

  • Subtask 1(10 pts),满足 n7n\le 7m14m\le 14,时限 1s;
  • Subtask 2(20 pts),满足 n50n\le 50m600m\le 600,时限 1s;
  • Subtask 3(20 pts),满足 n1000n\le 1000m5000m\le 5000,时限 1s;
  • Subtask 4(50 pts),无特殊限制,时限 3s。

对于 100%100\% 的数据,满足 n105n\le 10^5m2×105m\le 2\times 10^5。设 ti=j[dj=i]t_i=\sum_j[d_j=i],还应满足 ititi12×105\sum_{i}t_it_{i-1}\le 2\times 10^5

本题强制开启 O2 优化。