luogu#P16808. [蓝桥杯 2026 国 Python A] 连续丢卡

[蓝桥杯 2026 国 Python A] 连续丢卡

题目描述

小蓝原本拥有一套卡片,卡片上写的数字分别为 1,2,,n1, 2, \ldots, n,每个数字恰好一张。

后来,小蓝发现这套卡片中丢失了连续的 LL 张。也就是说,存在一个正整数 aa,使得写有数字 a,a+1,,a+L1a, a+1, \ldots, a+L-1 的卡片全部丢失,其中 a+L1na+L-1 \le n

丢失发生后,小蓝将剩下所有卡片上的数字相加,得到的总和为 SS

现在,给定剩下卡片的数字之和 SS 以及丢失的卡片张数 LL,请你计算所有可能的原卡片总数 nn 的总和。如果不存在任何符合条件的 nn,则答案为 00。同一个合法的 nn 即使对应多种丢失情况,也只统计一次。

由于答案可能很大,你只需要给出满足条件的 nn 的总和对 998244353998244353 取模后的结果即可。

输入格式

第一行包含一个正整数 TT,表示询问的组数。

接下来 TT 行,每行包含两个正整数 SSLL,中间用一个空格隔开。

输出格式

输出共 TT 行,每行包含一个整数,表示对应询问中所有可能 nn 的总和对 998244353998244353 取模后的结果。

4
10 2
15670 27
20 3
35 1
11
579
0
8

提示

【样例说明】

对于第一组询问,S=10,L=2S = 10, L = 2

  • n=5n = 5 时,可以丢失编号为 2,32, 3 的两张卡片,剩余卡片编号之和为 1010
  • n=6n = 6 时,可以丢失编号为 5,65, 6 的两张卡片,剩余卡片编号之和为 1010

因此可能的 nn5566,答案为 5+6=115 + 6 = 11

【评测用例规模与约定】

对于 30%30\% 的评测用例,1T51 \le T \le 5, 1S1061 \le S \le 10^6, 1L201 \le L \le 20

对于所有评测用例,1T1051 \le T \le 10^5, 1S10181 \le S \le 10^{18}, 1L1001 \le L \le 100