bzoj4512: [Usaco2016 Jan] Build Gates
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj4512: [Usaco2016 Jan] Build Gates相关的知识,希望对你有一定的参考价值。
题目大意:给个序列,求最长的连续子序列使其为7的倍数
又是一道令人欢喜的不用怎么用脑的水题。。
边读入,边计算前缀和
分别保存前缀和%7结果为1,2,3,4,5,6的第一次的位置
然后减一减就知道长度啦。
1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 using namespace std; 5 int n,t,last[8],ans; 6 long long sum[50010]; 7 int main(){ 8 scanf("%d", &n); 9 ans=0; 10 for (int i=1; i<=n; i++){ 11 scanf("%lld", &sum[i]); 12 sum[i]+=sum[i-1]; 13 t=sum[i]%7; 14 if (!last[t]) last[t]=i; 15 ans=max(ans,i-last[t]); 16 } 17 printf("%d\n", ans); 18 return 0; 19 }
以上是关于bzoj4512: [Usaco2016 Jan] Build Gates的主要内容,如果未能解决你的问题,请参考以下文章
bzoj4525: [Usaco2016 Jan]Angry Cows
bzoj4511: [Usaco2016 Jan]Subsequences Summing to Sevens
[BZOJ4506] [Usaco2016 Jan]Fort Moo(DP?)
bzoj4509Usaco2016 JanAngry Cows