It is preferrable to read the pdf statment.
Cuber QQ has recently learned jumping on graphs. He now wants to demonstrate his skills on a cactus.
Recall that, cactus refers to a graph with every edge appearing in at most one cycle. If you do not know what a cycle is, formally, a cycle of length k
denotes an edge sequence (u1,u2),(u2,u3),…,(uk−1,uk),(uk,u1)
.
Assuming you are given an undirected cactus G=(V,E)
, with n
vertices and m
edges. A jumping on the cactus can be thought of as a visit to all vertices where every vertex is visited exactly once. That can be represented with a permutation of 1
to n
, p1,p2,…,pn
, and they are visited in order.
Cuber QQ also wishes his jumping to be gradually approaching or distancing away from a particular node e
. Concretely, we define d(a,b)
to be the distance from a
to b
(the minimum edges needs to be passed through from a
to b
). A jumping is defined to be monotonic if,
-
for all edges (u,v)∈E, d(u,e)<d(v,e) when u is visited before v, or,
-
for all edges (u,v)∈E, d(u,e)>d(v,e) when u is visited after v.
Count the number of different monotonic jumping plans. Since the answer can be very large, you should print the answer modulo 998 244 353
.