#1146. [CZOJ 一周一测 R16 B] 城市建造

[CZOJ 一周一测 R16 B] 城市建造

题目描述

有一张 nn 个点的无向图,初始第 ii 个点的点权为 aia_i,而图上没有连边。

出于某些原因,你需要在图上建造 尽可能多 的边,满足:图无重边、自环;且不存在 互不相同的 整数 u,v,wu, v, w 满足 auavawa_u \leq a_v \leq a_w,同时 u,vu, v 节点之间有连边、v,wv, w 节点之间有连边。

在满足建造边数最大的情况下,求共有多少种不同的建造方案。因为答案可能很大,所以请对 998244353998244353 取模。

输入格式

cities.in 中读入数据。

本题单个测试点内有多组数据。

第一行,一个整数 tt,描述数据组数。对于每组数据:

  • 第一行,一个整数 nn
  • 接下来一行 nn 个整数 a1,,ana_1, \ldots, a_n

输出格式

输出到 cities.out 中。

对于每组数据,输出一行一个整数,表示答案对 998244353998244353 取模后的结果。

样例

3
2
7 7
3
1 2 3
5
1 3 2 2 5
1
2
1

样例 1 解释

对于第一组数据,唯一符合题意的边集是 {(1,2)}\{(1, 2)\}

对于第二组数据,一个符合题意的边集是 {(1,2),(1,3)}\{(1, 2), (1, 3)\},或是 {(1,3),(2,3)}\{(1, 3), (2, 3)\}。共有 22 种。

对于第三组数据,唯一符合题意的边集是 {(1,2),(1,5),(2,3),(2,4),(3,5),(4,5)}\{(1, 2), (1, 5), (2, 3), (2, 4), (3, 5), (4, 5)\}

附加样例

下发cities/cities2.incities/cities2.anscities/cities3.incities/cities3.ans

数据规模与约定

本题采用捆绑测试。

  • Subtask 1(20 pts):t15t \leq 15n5n \leq 5ai10a_i \leq 10
  • Subtask 2(30 pts):保证 a1,,ana_1, \ldots, a_n 互不相同。
  • Subtask 3(50 pts):无特殊限制。

对于所有数据,保证 1t1031 \leq t \leq 10^3n3×105\sum n \leq 3\times 10^5n1n \geq 11ai1091 \leq a_i \leq 10^9