L K序列

8人阅读 评论(0) 收藏 举报
分类:
链接:https://www.nowcoder.com/acm/contest/91/L来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld

题目描述

给一个数组 a,长度为 n,若某个子序列中的和为 K 的倍数,那么这个序列被称为“K 序列”。现在要你 对数组 a 求出最长的子序列的长度,满足这个序列是 K 序列。 

输入描述:

第一行为两个整数 n, K, 以空格分隔,第二行为 n 个整数,表示 a[1] ∼ a[n],1 ≤ n ≤ 105 , 1 ≤ a[i] ≤ 109 , 1 ≤ nK ≤ 107

输出描述:

输出一个整数表示最长子序列的长度 m

利用前缀数组来优化时间复杂度,然后枚举从n开始枚举最长序列的长度

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
ll qian[100100];
int main()
{
    ll n, m;
    scanf("%lld %lld", &n, &m);
    ll num;
     qian[0] = 0;
    for(int i = 1; i <= n; i ++){
        scanf("%lld", &num);
        if(i > 1) qian[i] = num + qian[i - 1];
        else qian[i] = num;
      // cout << qian[i] << " ";
    }
    int st = 0;
    int sum = 1;
    int i;
    int N = 0;
    while(n){
        for(i = 0; i < sum ; i++){
            //cout << qian[i + n] - qian[i] << endl;
            if((qian[i + n] - qian[i]) % m == 0) {
                N = 1;
                break;
            }
        }
        if(N) break;
        n --;
        sum ++;
    }
    cout << n <<endl;
    return 0;
}

查看评论

蓝桥杯2014年以前JAVA历年真题及答案整理——区间k大数查询

问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列长度。 第二行包含n个正整数,表示给定的序列。 第三个包含一个正整数m,表示询问个数...
  • yjg211314
  • yjg211314
  • 2014-03-21 23:25:12
  • 867

给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个

(由于是ACM题所以是按起写的,其实我也是新手,如果有什么出错的地方还望理解和提出,我将继续努力) 题目描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入 第一行...
  • qq_36570464
  • qq_36570464
  • 2017-03-04 20:39:53
  • 1172

蓝桥杯-算法训练-ALGO1-区间k大数查询

JAVA-蓝桥杯-算法训练-区间k大数查询 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列...
  • u011035622
  • u011035622
  • 2015-02-07 15:16:19
  • 1120

区间K大数查询

问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列长度。 第二行包含n个正整数,表示给定的序列。 ...
  • u012523688
  • u012523688
  • 2014-03-08 11:39:03
  • 672

Lq_ 区间k大数查询

算法训练 区间k大数查询   时间限制:1.0s   内存限制:256.0MB 锦囊1 锦囊2 锦囊3 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪...
  • briup_acmer
  • briup_acmer
  • 2015-03-24 15:46:47
  • 1086

ALGO-1 蓝桥杯算法训练第一题 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。

问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m...
  • qq_38185915
  • qq_38185915
  • 2018-03-06 20:59:42
  • 100

十六届金马五校赛 L:DP求最长K倍序列

链接:https://www.nowcoder.com/acm/contest/91/L来源:牛客网给一个数组 a,长度为 n,若某个子序列中的和为 K 的倍数,那么这个序列被称为“K 序列”。现在要...
  • qq_36876305
  • qq_36876305
  • 2018-04-16 21:06:29
  • 16

问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列长度。 第二行包含n个正整数,表示给定的序列。 第三个包含一个正整数m,表

#include using namespace std; void print(int *a,int len) { int i=0; for(;i cout cout } void...
  • Faded0104
  • Faded0104
  • 2016-12-30 20:14:08
  • 2951

蓝桥杯:区间K大数查询

题目: 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列长度。 第二行包含n个正整数,表示给定的序列。 第三个包含一个正整数m,表示...
  • JDOUN
  • JDOUN
  • 2016-05-09 21:38:56
  • 300

算法训练(1)——区间k大数查询

写在开头 由于学业及等等各种复杂原因,10月份起就没有更新博客了。曾经有梦想参加ACM的,无奈没有环境和队友。今年学校第一年参与蓝桥杯,抱着试一试玩一玩的心态报了名。报名到现在也有一段时间了,已经练...
  • qq_26621551
  • qq_26621551
  • 2017-02-09 00:17:32
  • 327
    个人资料
    持之以恒
    等级:
    访问量: 3226
    积分: 757
    排名: 6万+
    最新评论