C. 回忆(14-3)

    传统题 文件IO:memory 3000ms 256MiB

回忆(14-3)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目背景

程程正在回顾自己的初中生活。他发现自己曾记录下每一次有意义事件的发生时间,并为每次事件计算了一个回忆值。为了制作一份特别的毕业册,程程希望从这些无限发生的事件中,选出一段连续事件,使它们的回忆值之和恰好等于一个给定的目标值 ss,并且选取的事件数量尽可能多。

题目描述

程程的初中生活中,从他入学的时刻 t1t_1 起,每隔 nn 秒就会发生一次事件。第 ii 起事件发生的时间戳记为

ti=t1+(i1)×n,(i1).t_i = t_1 + (i-1)\times n,\quad (i\ge1).

ii 起事件会带给他 timodmt_i \bmod m 的回忆值。由于时间很长,可以认为事件总数是无限的。

现在给定正整数 t1,n,m,st_1, n, m, s,请你判断程程能否选出一段连续的事件,使这些事件的回忆值之和恰好为 ss,并且在所有可行方案中选取事件数量最多。如果存在这样的选取,输出“Yes”并给出最大事件数量;否则输出“No”并输出 00

输入格式

第一行输入一个正整数 TT,代表测试数据的组数。
接下来 TT 行,每行包含四个正整数 t1,n,m,st_1, n, m, s,含义如上所述。

输出格式

对于每组测试数据,输出两行:
第一行输出 “Yes” 或 “No”,表示是否存在符合条件的连续事件段;
第二行输出能选取的最多事件数量,如果不存在则输出 00

样例

1
1 1 4 6
Yes
5
3
10 6 8 3
23 3 4 100
15 2 3 100
No
0
Yes
67
Yes
101

样例解释

样例 #1:
t1=1,n=1,m=4t_1=1,n=1,m=4 时,事件回忆值序列为

1,2,3,0,1,2,3,0,1,2,3,0,1,2,3,0,\dots

可以选取第 4 至第 8 起事件对应的回忆值

0+1+2+3+0=60+1+2+3+0=6

共 5 个事件,和为目标值 6,且无法选出更长的连续段。

数据范围

  • 对于 30% 的测试数据,1m100, 1s1001\le m\le100,\ 1\le s\le100
  • 对于 50% 的测试数据,1m103, 1s1051\le m\le10^3,\ 1\le s\le10^5
  • 对于 100% 的测试数据,$1\le m\le10^5,\ 1\le s\le10^{18},\ 1\le t_1\le10^9,\ 1\le n\le10^5,\ 1\le T\le500$。

附件

CSP-J 模拟赛10

未参加
状态
已结束
规则
IOI
题目
4
开始于
2025-10-27 17:00
结束于
2025-10-28 3:00
持续时间
10 小时
主持人
参赛人数
7