zoukankan      html  css  js  c++  java
  • 一维前缀和

    2017-08-27 09:30:59

    writer:pprp

    很基础的一个知识点,想要求区间内的和,可以考虑用两个前n项和 相减

    输入输出部分,采用自己写的一个函数,用getchar() putchar()来读取和输出结果

    用的时候应该注意具体的具体的类型应该根据题目选定

    代码如下:

    /*
    @theme:一维前缀和
    @writer:pprp
    @declare:a[i] = s[i] - s[i-1]
    @date:2017/8/27
    */
    
    #include <bits/stdc++.h>
    
    using namespace std;
    
    const int maxn = 1000010;
    
    int n, m, a[maxn];
    
    //输入优化
    inline int read()
    {
        int X=0,w=1; char ch=0;
        while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();}
        while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar();
        return X*w;
    }
    
    inline void write(int x)
    {
         if(x<0) putchar('-'),x=-x;
         if(x>9) write(x/10);
         putchar(x%10+'0');
    }
    
    int main()
    {
        n = read();
        m = read();
    
        a[0] = read();
    
        //前n项求和 S[i]
        for(int i = 1; i < n ; i++)
        {
            a[i] = read();
            a[i] += a[i-1];
        }
    
        for(int i = 0 ; i < m ; i++)
        {
            int l, r;
            l = read();
            r = read();
            if(l == 1)
                write(a[r-1]);
            else
                write(a[r-1] - a[l-2]);
            putchar('
    ');
        }
        return 0;
    }

     

  • 相关阅读:
    括号
    vue 框架原理
    Angular 1.x 框架原理
    ES5的数组方法
    js 对象细节
    《高性能网站建设进阶指南》笔记
    vue 运行时 + 编译器 vs. 只包含运行时
    vue-loader 细节
    vue 错误处理
    移动web touch事件
  • 原文地址:https://www.cnblogs.com/pprp/p/7439636.html
Copyright © 2011-2022 走看看