• 【杭电】[5776]sum


    原文地址:http://www.boiltask.com/blog/?p=1986
    sum

    Time Limit: 2000/1000 MS (Java/Others)

    Memory Limit: 131072/131072 K (Java/Others)
    Problem Description

    Given a sequence, you’re asked whether there exists a consecutive subsequence whose sum is divisible by m. output YES, otherwise output NO

    Input

    The first line of the input has an integer T (1 leq T leq 101≤T≤10), which represents the number of test cases. For each test case, there are two lines: 1.The first line contains two positive integers n, m (1 leq n leq 1000001≤n≤100000, 1 leq m leq 50001≤m≤5000). 2.The second line contains n positive integers x (1 leq x leq 1001≤x≤100) according to the sequence.

    Output

    Output T lines, each line print a YES or NO.

    Sample Input

    2
    3 3
    1 2 3
    5 7
    6 6 6 6 6
    1
    2
    3
    4
    5
    2
    3 3
    1 2 3
    5 7
    6 6 6 6 6
    Sample Output

    YES
    NO
    1
    2
    YES
    NO
    中文题意:

    给定一个数列,求是否存在连续子列和为m的倍数,存在输出YES,否则输出NO

    官方题解:

    预处理前缀和,一旦有两个数模m的值相同,说明中间一部分连续子列可以组成m的倍数。 另外,利用抽屉原理,我们可以得到,一旦n大于等于m,答案一定是YES 复杂度 O(n)

    
    #include<stdio.h>
    #include<string.h>
    int flag[10000];
    int main() {
        int T;
        scanf("%d",&T);
        while(T--) {
            int n,m;
            scanf("%d %d",&n,&m);
            memset(flag,0,sizeof(flag));
            flag[0]=1;
            bool win=false;
            int sum=0;
            for(int i=0; i<n; i++) {
                int t;
                scanf("%d",&t);
                sum=(sum+t)%m;
                if(flag[sum]==1)
                    win=true;
                flag[sum]=1;
            }
            if(win)
                printf("YES
    ");
            else
                printf("NO
    ");
        }
        return 0;
    }

    题目地址:【杭电】[5776]sum

    原文地址:http://www.boiltask.com/blog/?p=1986

  • 相关阅读:
    第二阶段个人总结八
    第二阶段个人总结七
    第二阶段个人总结六
    第二阶段个人总结五
    电梯演说模板练习
    对敏捷开发的理解
    团队的不同形式
    认识JQuery的三天--看视频得到的一些小知识点
    结对编码
    结对互评
  • 原文地址:https://www.cnblogs.com/BoilTask/p/12569445.html
Copyright © 2020-2023  润新知