C. 2026模拟卷(一)T3 和为 K 的子段

    传统题 2000ms 256MiB

2026模拟卷(一)T3 和为 K 的子段

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

2026模拟卷(一)T3 和为 K 的子段

题目背景

小 Z 在分析一组带正负号的测量偏差。他想知道,哪一段连续的测量值加起来正好等于某个给定常数。

题目描述

给定一个长度为 nn 的整数序列 a1,a2,…,ana_1, a_2, \ldots, a_n,以及一个整数 KK。

请你求出最长的连续子段 al,al+1,…,ara_l, a_{l+1}, \ldots, a_r(1≤l≤r≤n1 \le l \le r \le n),使得

al+al+1+⋯+ar=Ka_l + a_{l+1} + \cdots + a_r = K

输出这个最长子段的长度 r−l+1r - l + 1。如果不存在任何连续子段的和等于 KK,输出 0。

输入格式

第一行两个整数 nn 与 KK,用一个空格隔开。 第二行 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n,相邻两个整数之间用一个空格隔开。

输出格式

共一行,一个整数,表示最长子段的长度;若不存在则输出 0。

样例输入

8 0
3 -1 1 2 -2 4 -3 1

样例输出

4

样例解释

先看符合条件的一段:a2a_2 到 a5a_5 为 −1+1+2−2=0=K-1 + 1 + 2 - 2 = 0 = K,长度 5−2+1=45 - 2 + 1 = 4。

再看有没有更长的。长度 5 的子段共有四段:

起点 子段 元素和
1 3 -1 1 2 -2 3
2 -1 1 2 -2 4 4
3 1 2 -2 4 -3 2
4 2 -2 4 -3 1

都不是 0。长度 6、7、8 的子段和分别为 7、3、4(前 8 项总和为 3),也都不等于 0。所以答案是 4。

数据范围

子任务 分值 nn 的限制 aia_i 的限制
1 20 n≤100n \le 100 ∣ai∣≤109\lvert a_i\rvert \le 10^9
2 30 n≤5000n \le 5000
3 20 n≤2×105n \le 2\times10^5 ai≥1a_i \ge 1
4 30 ∣ai∣≤109\lvert a_i\rvert \le 10^9

对于 100%100\% 的数据,1≤n≤2×1051 \le n \le 2\times10^5,∣ai∣≤109|a_i| \le 10^9,∣K∣≤1014|K| \le 10^{14}。

2026 模拟卷(一)

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-10-3 0:00
结束于
2026-10-3 3:30
持续时间
3.5 小时
主持人
参赛人数
15