QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 512 MB مجموع النقاط: 100

#7889. 간파신기

الإحصائيات

지재군단의 군사 흑포는 잠입한 첩자를 통해 신비한 지팡이에 대한 정보를 입수했고, 아르카나 보석에 담긴 고대의 신비한 힘에 큰 관심을 갖게 되었습니다. 그는 여러 개의 아르카나 보석을 탈취한 뒤, 지재군단의 수석 과학자인 당신에게 연구원들을 이끌고 그 비밀을 풀 것을 명령했습니다. 한 달간의 고된 노력 끝에 연구팀은 「$2$」형 아르카나 보석과 「$3$」형 아르카나 보석의 내부 에너지 구조를 해독해냈습니다.

이 두 구조는 일정한 유사성을 가지고 있습니다. 내부에는 $k$개의 반응 코어가 존재하며, 「$2$」형 아르카나 보석의 각 코어는 $2 \times n$ 격자로, 「$3$」형 아르카나 보석의 각 코어는 $3 \times n$ 격자로 볼 수 있습니다. (보석의 $k$와 $n$은 서로 다를 수 있습니다.) 신력 반응이 시작되면 각 코어는 신력 입자로 가득 채워집니다.

형식적으로 설명하자면, 각 신력 입자는 $1 \times 2$ 크기의 가로 또는 세로로 놓인 타일로 볼 수 있으며, 코어가 가득 찼다는 것은 모든 격자가 정확히 하나의 타일로 덮여 있음을 의미합니다. 반응 코어를 채우는 두 가지 방식에서 타일이 놓인 위치나 방식이 하나라도 다르면 서로 다른 방식으로 간주합니다.

예를 들어, $2 \times 4$ 격자를 채우는 방식은 $5$가지가 있고, $3 \times 2$ 격자를 채우는 방식은 $3$가지가 있습니다.

아르카나 보석의 $k$개 코어를 채우는 방식이 모두 서로 다르다면, 이들은 강력한 주술을 조합해냅니다. 흑포는 특정 보석으로 만들 수 있는 서로 다른 주술의 총 개수를 알고 싶어 합니다. (두 주술 조합에 대하여, 첫 번째 주술의 각 코어 $a$의 채우기 방식과 완전히 동일한 채우기 방식을 가진 코어 $b$가 두 번째 주술에 존재한다면, 이 두 주술 조합은 동일한 것으로 간주합니다.)

너비가 $n$이고 반응 코어 개수가 $k$인 「$2$」형 아르카나 보석의 서로 다른 주술 개수를 $F(n,k)$라 하고, 너비가 $n$이고 반응 코어 개수가 $k$인 「$3$」형 아르카나 보석의 서로 다른 주술 개수를 $G(n,k)$라 합니다. 예를 들어 $F(4,1) = 5, F(4,2) = 10, G(2,2) = 3$입니다.

지재군단의 기술력으로는 반응 코어의 길이 $n$을 정확히 측정할 수 없으며, 코어 길이의 대략적인 범위 $[l, r]$만 확인할 수 있습니다. 당신은 이 구간 내 반응 코어 길이에 대한 평균 주술 개수를 계산해야 합니다. 즉,

$$\mathrm{ans2} = \frac{1}{r-l+1}\sum_{n=l}^{r} F(n,k)$$

$$\mathrm{ans3} = \frac{1}{r-l+1}\sum_{n=l}^{r} G(n,k)$$

최종 답을 $\frac{A}{B}$라 할 때, $A \times B^{-1} \bmod 998244353$의 결과를 출력하십시오. 여기서 $B^{-1}$은 $998244353$에 대한 $B$의 모듈러 역원입니다.

입력

첫 번째 줄에는 두 개의 양의 정수 $T$와 $m$이 주어지며, 각각 데이터 세트의 개수와 아르카나 보석의 유형($2$ 또는 $3$만 가능)을 나타냅니다.

이어지는 $T$개의 줄에는 각각 세 개의 양의 정수 $l, r, k$가 주어지며, 이는 코어 길이의 범위와 코어의 개수를 나타냅니다.

출력

각 데이터 세트에 대하여, $m=2$이면 $\mathrm{ans2}$를, $m=3$이면 $\mathrm{ans3}$를 출력하십시오.

예제

예제 입력 1

5 2
2 4 2
1 10000 501
52501 233333333333 1
52501 233333333333 2
52501 233333333333 50

예제 출력 1

665496240
218802505
745517510
133015204
910014966

예제 입력 2

5 3
2 2 2
1 10000 501
52501 233333333333 1
52501 233333333333 2
52501 233333333333 50

예제 출력 2

3
900767573
52671648
600503426
678428567

서브태스크

테스트 케이스 $m=$ $k$ 특수 조건
$1\sim 2$ $2$ $\le 501$ $1\le l \le r \le 52501$
$3$ $2$ $\le 501$ $r - l + 1 \le 52501$
$4$ $2$ $=1$
$5$ $2$ $=2$
$6\sim 7$ $2$ $\le 50$
$8\sim 10$ $2$ $\le 501$
$11\sim 12$ $3$ $\le 501$ $1\le l \le r \le 52501$
$13$ $3$ $\le 501$ $r - l + 1 \le 52501$
$14$ $3$ $=1$
$15$ $3$ $=2$
$16\sim 17$ $3$ $\le 50$
$18\sim 20$ $3$ $\le 501$

$100\%$의 데이터에 대하여 다음을 만족합니다:

  • $T=1$
  • $1\le l\le r\le 10^{18}$
  • $1\le k \le 501$
  • $r - l + 1 \not \equiv 0 \pmod {998244353}$

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.