题目大意:给个序列,求最长的连续子序列使其为7的倍数
又是一道令人欢喜的不用怎么用脑的水题。。
边读入,边计算前缀和
分别保存前缀和%7结果为1,2,3,4,5,6的第一次的位置
然后减一减就知道长度啦。
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; ],ans; ]; int main(){ scanf("%d", &n); ans=; ; i<=n; i++){ scanf("%lld", &sum[i]); sum[i]+=sum[i-]; t=sum[i]%; if (!last[t]) last[t]=i; ans=max(ans,i-last[t]); } printf("%d\n", ans); ; }