zoukankan      html  css  js  c++  java
  • Contest20140710 sequence

    sequence|sequence.in|sequence.out


    题目描述:

    给定一个整数K和长为N的数列{Ai},求有多少个子串(不含空串)的和为K的倍数。(在这里子串表示{A[i]..A[j]}i<=j


    输入格式:

    共两行

    第一行两个整数N,K

    第二行N个整数表示数列{Ai}


    输出格式:

    一行一个整数表示满足条件的子串的个数


    样例输入:

    6 3

    1 2 6 3 7 4


    样例输出:

    7


    数据范围:

    20% N<=100

    对另外20% K<=100

    对所有数据N<=500000 K<=500000

    保证输入数据中所有数都能用longint保存

     

    一定注意mod为负数的情况。

     

     

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    #define PROB "sequence"
    #define MAXN 550000
    #ifdef unix
    #define LL "%lld"
    #else
    #define LL "I64d"
    #endif
    typedef long long qword;
    int num[MAXN];
    int sum[MAXN];
    int tot[MAXN];
    int main()
    {
            freopen(PROB".in","r",stdin);
            freopen(PROB".out","w",stdout);
            int n,m;
            int i,j;
            scanf("%d%d",&n,&m);
            for (i=1;i<=n;i++)
            {
                    scanf("%d",num+i);
                    sum[i]=(sum[i-1]+num[i])%m;
                    sum[i]=(sum[i]+m)%m;
            }
            qword ans=0;
            for (i=0;i<=n;i++)
            {
                    ans+=tot[sum[i]];
                    tot[sum[i]]++;
            }
            printf(LL" ",ans);
    }

     

     

    by mhy12345(http://www.cnblogs.com/mhy12345/) 未经允许请勿转载

    本博客已停用,新博客地址:http://mhy12345.xyz

  • 相关阅读:
    bootstrap2文档的学习
    在mininet上基于ovs,ovx,pox搭建三点虚拟网络
    借鉴一些关于js框架的东西
    setTimeout js
    Ubuntu 上配置静态的ip
    html5 canvas
    获取当前页面的长宽
    ovs的卸载
    tensorflow实现Word2vec
    梯度下降做做优化(batch gd、sgd、adagrad )
  • 原文地址:https://www.cnblogs.com/mhy12345/p/3837314.html
Copyright © 2011-2022 走看看