CF2041F.Segmentation Folds
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Peter 喜欢折线段玩。有一条线段位于数轴上的区间 [ℓ,r]。现如今正是折叠线段的好时机,Peter 决定小心翼翼地对这条线段进行折叠。每次操作中,他可以选择以下两种方式之一(在可能的情况下):
-
操作 LTR:他从左向右折线段,使得左端点 ℓ 与某个点 x 重合(ℓ<x≤r),并且 ℓ+x 是质数。当他选择此操作时,总是选取最大的 x 值。折叠后,线段所在的区间变为 [21(ℓ+x),r]。
-
操作 RTL:他从右向左折线段,使得右端点 r 与某个点 x 重合(ℓ≤x<r),并且 r+x 是质数。当他选择此操作时,总是选取最小的 x 值。折叠后,线段所在的区间变为 [ℓ,21(r+x)]。
一个折叠序列是指这两种操作的组合。Peter 想要通过多次折叠,使线段的长度尽可能短,且无法再缩短。区间的长度自然定义为 r−ℓ。考虑以下例子:假设我们折叠一段初始为 [1,30] 的线段。有三种折叠方式能使最终区间长度最短,如下图所示。

请你帮助 Peter 确定有多少种不同的折叠序列可以使线段达到最短长度。结果需要对 998244353 取模。
注:一个大于 1 的整数 p 是质数,当且仅当不存在整数 a,b>1 使得 p=ab。
输入格式
第一行包含一个整数 t,表示测试用例的数量。接下来的 t 行中,每行包含两个整数 ℓ 和 r。
- 1≤t≤10
- 1≤ℓ<r≤1012
- r−ℓ≤105
输出格式
对于每个测试用例,输出一行,表示能将给定线段折叠到最短长度的折叠序列数量,结果对 998244353 取模。
本翻译由 AI 自动生成
输入输出样例
输入#1
3 1 30 16 18 142857 240135
输出#1
3 1 63
输入解题思路,AI测评打分。不知道怎么写?