给你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—实训day10—Matplotlib数据可视化和scikit-learn构建模型
  2. c++ 图的连通分量是什么_【自考】数据结构第五章图,期末不挂科指南,第9篇
  3. java++记录+运行_记录java+testng运行selenium(三)---xml、ini、excel、日志等配置
  4. body区域怎么传一个数组_自己轻松写一个jQuery库
  5. 问题解决:java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date
  6. 1、微博RPC框架Motan
  7. mysql源码安装教程
  8. Java实现定时任务
  9. 制作window11系统U盘启动盘
  10. 翁恺C语言程序设计网课笔记合集
  11. DMS疲劳驾驶监测系统
  12. oled u8g2如何显示中文(实测有效)
  13. 病毒全攻略:我是怎样让你感冒的
  14. mac蓝牙连接有问题要怎么处理呢?
  15. 不浪费原料的汉堡制作方案--贪心算法
  16. opencv——批量处理图片并保存
  17. 湖南省首届逻辑推理大赛(中南大学)
  18. 三立期货:掌财社重大事项停牌是利好吗?一般停多久?
  19. 2021年中国玉米淀粉市场供需及价格分析,购销转淡,跌势趋稳,价格仍处高位「图」
  20. IE8 设置图片大小,没有效果

热门文章

  1. 数据挖掘基础:度量数据的相似性和相异性
  2. RGB和HSV区别与互相转换
  3. 论文笔记:Excavating the Potential Capacity of Self-Supervised Monocular Depth Estimation
  4. 调整小组成员架构对外称呼_考虑如何称呼团队成员和经理
  5. php 汉字拼音首字母,PHP获得中文汉字拼音首字母例子
  6. QUI操作超时弹出登录窗口登录的处理方式
  7. linux mplayer 编译,linux平台mplayer的编译安装方法
  8. 何为“网管”—送给想当网管的朋友们
  9. Matter实战教程-Silicon Labs EFR32:学习教程目录
  10. 王道数据结构笔记03-红黑树/RBT