Codeforces Round 875 (Div. 1) |
---|
Закончено |
Вам дано целое число $$$n$$$ и $$$k$$$ отрезков. $$$i$$$-й отрезок имеет вид $$$[l_i,r_i]$$$, где $$$1 \leq l_i \leq r_i \leq n$$$.
Правильная скобочная последовательность$$$^{\dagger,\ddagger}$$$ длины $$$n$$$ называется гиперправильной, если для каждого $$$i$$$ такого, что $$$1 \leq i \leq k$$$, подстрока $$$\overline{s_{l_i} s_{l_{i}+1} \ldots s_{r_i}}$$$ также является правильной скобочной последовательностью.
Ваша задача — посчитать количество гиперправильных скобочных последовательностей. Так как это число может быть очень большим, требуется вывести его по модулю $$$998\,244\,353$$$.
$$$^\dagger$$$ Скобочная последовательность — это строка, содержащая только символы «(» и «)».
$$$^\ddagger$$$ Последовательность скобок называется правильной, если её можно превратить в правильное математическое выражение путём добавления символов + и 1. Например, последовательности (())(), (), (()(())) и пустая строка являются правильными, а )(, (() и (())( — нет.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^5$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 3 \cdot 10^5$$$, $$$0 \le k \le 3 \cdot 10^5$$$) — длину гиперправильной скобочной последовательности и количество отрезков соответственно.
Следующие $$$k$$$ строк каждого набора содержат два целых числа $$$l_i$$$ и $$$r_i$$$ ($$$1 \le l \le r \le n$$$).
Гарантируется, что сумма $$$n$$$ по всем наборам не превышает $$$3 \cdot 10^5$$$, и сумма $$$k$$$ по всем наборам не превышает $$$3 \cdot 10^5$$$.
Для каждого набора входных данных выведите количество гиперправильных скобочных последовательностей по модулю $$$998\,244\,353$$$.
76 05 08 11 310 23 46 91000 3100 701200 801300 90128 51 123 2011 144 918 194 31 41 41 4
5 0 0 4 839415253 140 2
Название |
---|