前缀和+后缀和
例题:
ZYing的数列 Description 这两天,ZYing突然迷上了数列,她喜欢用随机数生成数列,然后去开动自己的大脑去研究这个数列有什么样的性质。最近她研就的性质和7有关,她用随机数生成了一个长度为n的数列,她觉得一个成功的数列,需要有连续的一段和为7的倍数的数,现在她想知道,她这个数列中,长度最长的和为7的倍数的连续区间的长度。 Input 第一行一个整数n代表数列中数的个数。 第二至n+1行每行一个非负整数表示数列中的数。 Output 一行一个整数代表最长的区间的长度。如果不存在,则输出0。 Sample Input 1 10 2 45 5 12 9 3 5 67 4 11 Sample Output 1 9 Hint 1 ≤𝑁≤50,000。数列中没个数a_ia i 满足0 \leq a_i \leq 1e90≤a i ≤1e9
解决:
首先求前缀和,并对7取模,这样得到的数组,余数相同的两位之间的连续子段和模7的值就为0;
统计出每个模数最先出现的位置,和最后出现的位置,就可求出长度,取最大值即可。
实质:
- 减法思维