5065: 最长连续子序列  

Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
Total Submit: 140            Accepted:29

Description

给定一系列非负整数,求最长的连续子序列,使其和是7的倍数。

Input

第一行为正整数N(1<=N<=50000),接下来有N行,每行有一个非负整数,所有整数不大于10^6。

Output

如果存在连续子序列,其和为7的倍数,则输出子序列长度,如果不存在则输出0。

Sample Input

7
3
5
1
6
2
14
10

Sample Output

5

这个题很水?所以大神懒得讲他们的做法?不过这道题确实不难,也就是O(n)做法就可以过的,没有想到这种贪心

这个其实是同余的思想,就是余数相同相当于中间这段也是,只要记录这个余数最早和最晚出线的就是所求值

https://ac.nowcoder.com/acm/contest/91/L 这个题目数据水了,全是连续的,当然正解是DP,序列是不连续的,子串是连续的埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛

#include <stdio.h>
int a[];
int main(){
int n,i,j,k,p,m=;
scanf("%d",&n);
for(i=;i<=n;i++){
scanf("%d",&p);
a[i]=(a[i-]+p)%;
}
for(i=;i<;i++){
for(k=;k<=n;k++){
if(a[k]==i){
break;}
}
for(j=n;j>;j--){
if(a[j]==i){
break;}
}
if(j-k>m)m=j-k;
}
printf("%d",m);
return ;}

这份代码逻辑更好些

#include <stdio.h>
int a[],b[];
int main()
{
int n;
scanf("%d",&n);
int s=;
for(int i=; i<=n; i++)
{
int p;
scanf("%d",&p);
s=(s+p)%;
if(!a[s]&&s)a[s]=i;
b[s]=i;
}
int mi=;
if(b[])
mi++;
for(int i=; i<; i++)
{
if(b[i]-a[i]>mi)
mi=b[i]-a[i];
}
printf("%d",mi);
return ;
}

TOJ 5065: 最长连续子序列的更多相关文章

  1. 【TOJ 5065】最长连续子序列(前缀和)

    Description 给定一系列非负整数,求最长的连续子序列,使其和是7的倍数. Input 第一行为正整数N(1<=N<=50000),接下来有N行,每行有一个非负整数,所有整数不大于 ...

  2. 最长连续子序列 Longest Consecutive Sequence

    2018-11-25 16:28:09 问题描述: 问题求解: 方法一.如果不要求是线性时间的话,其实可以很直观的先排序在遍历一遍就可以得到答案,但是这里明确要求是O(n)的时间复杂度,那么就给了一个 ...

  3. POJ2479(最长连续子序列和)

    Maximum sum Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37035   Accepted: 11551 Des ...

  4. HDU1231 最长连续子序列

    最大连续子序列 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  5. leetcode 128. 最长连续子序列

    题目描述: 给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入:[100, 4, 200, 1, 3, 2] 输出:4 即最长的连续序列为 [1,2, ...

  6. hdu1231 最长连续子序列和

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1231 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, N ...

  7. 最长连续子序列(dp,分而治之递归)

    5227: 最大子列和问题 时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte 总提交: 76            测试通过:46 描述 给定KK个整数组 ...

  8. HDU 3308 线段树单点更新+区间查找最长连续子序列

    LCIS                                                              Time Limit: 6000/2000 MS (Java/Oth ...

  9. BNUOJ 4215 最长公共连续子序列

    最长公共连续子序列 Time Limit: 1000ms Memory Limit: 65536KB   64-bit integer IO format: %lld      Java class ...

随机推荐

  1. hihocoder1068 RMQ-ST算法

    思路: 这是ST表模板.遇到一道indeed笔试题需要用这个算法,顺便学习一下.那道题是说给定一个一维数组和一些查询[Li, Ri],要求计算[Li, Ri]区间内子段和的绝对值的最大值.解法是使用S ...

  2. BeanUtils 工具类

    一.BeanUtils 概述     BeanUtils 是阿帕奇提供的一套专门用于将一些数据封装到java对象中的工具类;          名词:javaBean:特定格式的java类称为java ...

  3. Objective-C Numbers

    In Objective-C programming language, in order to save the basic data types like int, float, bool in ...

  4. java代码(生成long类型数字)

    package test; public class GenerateNum { public static void main(String[] args) { //定义为long类型,需在数值后面 ...

  5. 将从SQL2008 r2里备份的数据库还原到SQL2008中

    从标题可以看出这是未解决上一篇遗留问题写的,现在我也不知道这个可不可以成功,方法似乎查到了一种,具体怎样还不清楚:而且,我想说的是“我踩雷了”. 这篇的主角是“Database Publishing ...

  6. ios push Payload

    https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotifi ...

  7. IOS Array 排序方法

    NSArray *sortedArray = [array sortedArrayUsingComparator: ^(id obj1, id obj2) { if ([obj1 integerVal ...

  8. QSting, QChar, char等的转换

    1,QChar 转换char: char QChar::toLatin1();char QChar::toAscii(); 2,Char转QChar: QChar(char ch); 3,QStrin ...

  9. Asp.Net Core 进阶(三)—— IServiceCollection依赖注入容器和使用Autofac替换它

    Asp.Net Core 提供了默认的依赖注入容器 IServiceCollection,它是一个轻量级的依赖注入容器,所以功能不多,只是提供了基础的一些功能,要实现AOP就有点麻烦,因此在实际工作当 ...

  10. Webpack的使用指南-Webpack小结

    参考文章: https://baijiahao.baidu.com/s?id=1594972657801970108&wfr=spider&for=pc 使用Webpack有一段时间了 ...