跳转至

下坡路线计数

预估时间限制:0.5 秒。内存限制:128 MB。

实际时限以标准程序在目标环境的最慢用例中位时间乘以 \(2\) ,按 \(0.5\) 秒向上取整。参考环境见评测说明。

背景故事

山地勘察队记录了各个路口的高度和连接它们的道路。队员只沿下坡方向移动,需要统计所有可以选择的路线。

(本故事由GPT-6重写)

形式化问题描述

有 \(n\) 个编号为 \(1,\ldots,n\) 的顶点,第 \(i\) 个顶点的高度为 \(h_i\) .有 \(m\) 条无向道路,第 \(i\) 条的编号为 \(i\) ,连接 \(u_i,v_i\) .

可以从任意顶点出发,每次通过恰好一条道路,到达高度严格小于当前顶点的另一个顶点。可以在任意时刻结束,也可以不移动。

一条路线用“起点编号,依次经过的道路编号”组成的序列表示,两个序列不同即视为不同路线。因此,连接相同顶点的不同道路分别计数;等高道路和自环不能用于移动。不移动的路线也按起点区分。

求路线总数对 \(998246353\) 取模的非负最小剩余。\(n=0\) 时没有路线。

输入格式

第一行两个整数 \(n,m\) .第二行 \(n\) 个整数 \(h_1,\ldots,h_n\) .接下来 \(m\) 行,第 \(i\) 行两个整数 \(u_i,v_i\) ,描述第 \(i\) 条道路。\(n=0\) 时高度一行为空,且 \(m=0\) .

输出格式

输出一行一个整数,表示取模后的路线数。

样例

样例 1

输入

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

输出

18

样例 2

输入

2 3
2 1
1 2
1 2
1 1

输出

4

样例 3

输入

0 0

输出

0

样例解释

第一组按终点统计,结束于顶点一到五的路线数分别为 \(6,5,4,2,1\) ,合计十八。第二组有两条不移动的路线,以及分别经过道路一或道路二的两条路线;自环不能用于下坡移动。第三组没有起点。

按终点统计下坡路线

数据范围与保证

\(0\le n,m\le10^5\) , \(-10^5\le h_i\le10^5\) , \(1\le u_i,v_i\le n\) .

分值比例 额外条件
50% \(n,m\le300\)
50% 无额外条件