给你n个数,分别是a[1],a[2],…,a[n]。求一个最长的区间[x,y],使得区间中的数(a[x],a[x+1],a[x+2],…,a[y-1],a[y])的和能被7整除。输出区间长度。若没有符合要求的区间,输出0。

思路:原本想从长度为n,n-1,n-2……2,1 这样暴力搜索一下,但是最坏情况是O(n^2),果然超时了
于是可以考虑用二分,见代码

#include <bits/stdc++.h>
using namespace std;
#define de(x) cout<<x<<" ";
#define Pu puts("");
#define sf(x) scanf("%d",&x);
typedef long long ll;
const int N=1e6+10,mod=100003;
const int inf=0x3f3f3f3f;
int a[N],pre[N];
int n,m,ans;
int fun(int len){int t;for(int i=len;i<=n;i++){t=(pre[i]-pre[i-len]+7)%7;if(t==0) return 1;}return 0;
}
int main(){cin>>n;int x;for(int i=1;i<=n;i++){sf(x)a[i]=x%7;pre[i]=(pre[i-1]+a[i])%7;}int l=0,r=n+1,mid;while(l<r){mid=(l+r)>>1;if(fun(mid)) l=mid+1;else r=mid;}printf("%d\n",l-1);return 0;
}

P3131 [USACO16JAN]Subsequences Summing to Sevens S-二分+前缀和相关推荐

  1. P3131 [USACO16JAN]Subsequences Summing to Sevens S

    P3131 [USACO16JAN]Subsequences Summing to Sevens S 提交13.65k 通过3.63k 时间限制200ms 内存限制128.00MB 提交答案加入题单 ...

  2. 洛谷P3131 [USACO16JAN]Subsequences Summing to Sevens S 题解

    洛谷P3131 [USACO16JAN]Subsequences Summing to Sevens S 题解 题目链接:P3131 [USACO16JAN]Subsequences Summing ...

  3. 洛谷P3131 [USACO16JAN]Subsequences Summing to Sevens S

    题目链接:P3131 [USACO16JAN]Subsequences Summing to Sevens S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目大意: 看到英文题 ...

  4. 题目:P3131 [USACO16JAN]Subsequences Summing to Sevens S

    题目:[USACO16JAN]Subsequences Summing to Sevens S - 洛谷 题目大意 给定一个序列,要求计算出能被7整除的最长序列 坑点 无 数据范围 int足以 思路 ...

  5. 洛谷 P3131 [USACO16JAN]子共七Subsequences Summing to Sevens

    P3131 [USACO16JAN]子共七Subsequences Summing to Sevens 题目描述 Farmer John's NN cows are standing in a row ...

  6. 题161.洛谷P3131 前缀和与差分-Subsequences Summing to Sevens S

    文章目录 题161.洛谷P3131 前缀和与差分-Subsequences Summing to Sevens S 一.题目 二.题解 题161.洛谷P3131 前缀和与差分-Subsequences ...

  7. [USACO16JAN]子共七Subsequences Summing to Sevens

    题目描述 Farmer John's NNN cows are standing in a row, as they have a tendency to do from time to time. ...

  8. P1083 借教室(标记永久化线段树/二分+前缀和)难度⭐⭐⭐★

    P1083 借教室 标记永久化线段树 很典型的区间修改问题,先输入赋值建树(这就是最典型的线段树呀,别忘了),然后修改 这里问的是是否有足够的空教室,所以线段树中 min 代表的是当前区间内最小的剩余 ...

  9. POJ 3061 (二分+前缀和or尺取法)

    题目链接: http://poj.org/problem?id=3061 题目大意:找到最短的序列长度,使得序列元素和大于S. 解题思路: 两种思路. 一种是二分+前缀和.复杂度O(nlogn).有点 ...

最新文章

  1. 学python要多少钱-培训python大概要多少钱?
  2. Javascript闭包概念剖析
  3. 零基础入门语义分割——Task2 数据扩增
  4. 若依可以商用吗_商用自动炒菜机Qamp;A,你想知道的都在这里!
  5. Unity 安装失败原因
  6. 2019 CSP-S第二轮认证一等奖获奖名单
  7. 多个excel工作簿合并_如何使用Excel VBA将多个工作簿的全部工作表合并到一个工作簿中...
  8. Thinkpad E430c使用u盘安装系统
  9. 如何使用html实现在线秒表,javascript实现一款好看的秒表计时器
  10. PMP考试计算题专题
  11. android系统10.0模拟器,exagear模拟器安卓10.0
  12. 经典Robocode例子代码--SnippetBot
  13. 平时用电脑需要注意什么
  14. Spring MVC @GetMapping和@PostMapping注解的使用
  15. 公司没大牛带,需要离职么?
  16. 如何看服务器电源型号,AcBel CRPS 服务器电源系列介绍
  17. css border边框不占外边的边距
  18. Redis有事务冲突吗
  19. 大数据算法系列10:字符串检验算法
  20. R统计绘图 | 物种组成堆叠面积图(绝对/相对丰度,ggalluvial)

热门文章

  1. ReleaseMutex用法
  2. docker搭建网站详细
  3. 七夕给女朋友准备的小惊喜网站制作(html+css+js)
  4. rbac权限组件整合到实际项目的全过程详述
  5. UBUNTU游戏集合
  6. 从制造业转型物联网,看博世如何破界
  7. QUI主体、授权文件
  8. One-Shot Learning
  9. 导航上显示某个地点已关闭什么意思_导航只认手机高德和百度?已经有车载导航帅到我了...
  10. 新版标准日本语初级_第十六课