zoukankan      html  css  js  c++  java
  • 区间sum 和为k的连续区间-前缀和

    区间sum

    有一个长度为n的正整数序列a1--an,candy想知道任意区间[L,R]的和,你能告诉他吗?

    第一行一个正整数n(0<n<=1e6),
    第二行为长度为n的正整数序列 a1到an(ai<=1e9,sum(a)<=1e18),
    第三行一个正整数m(m<=1e6),表示询问次数,
    随后m行,每行两个正整数L,R(1<=L<=R<=n)。

    m行输出,对应m次询问结果

     复制
    5
    1 4 3 6 3
    3
    1 3
    2 2
    1 5
    8
    4
    17

    一整数数列a1, a2, ... , an(有正有负),以及另一个整数k,求一个区间i,ji,j,(1 <= i <= j <= n),使得aii + ... + ajj = k。

     

    Input第1行:2个数N,K。N为数列的长度。K为需要求的和。(2 <= N <= 10000,-10^9 <= K <= 10^9)
    第2 - N + 1行:Aii(-10^9 <= Aii <= 10^9)。Output如果没有这样的序列输出No Solution。 
    输出2个数i, j,分别是区间的起始和结束位置。如果存在多个,输出i最小的。如果i相等,输出j最小的。Sample Input

    6 10
    1
    2
    3
    4
    5
    6

    Sample Output

    1 4

    前缀和,通常用来求某个区间的和或和为多少的区间,前者时间复杂度由暴力O(n)节省到了O(1),是一个高效的区间和方法。

    #include<stdio.h>
    
    int main()  
    {
        int n,m,l,r,i;
        long long a[1000005];
        scanf("%d",&n);
        a[0]=0;
        scanf("%lld",&a[1]);
        for(i=2;i<=n;i++){
            scanf("%lld",&a[i]);
            a[i]+=a[i-1];
        }
        scanf("%d",&m);
        for(i=1;i<=m;i++){
            scanf("%d%d",&l,&r);
            printf("%lld
    ",a[r]-a[l-1]);
        }
        return 0;
    }
    
    
    


    #include<stdio.h>
    #include<string.h>
    int main()
    {
        long long n,k,f,i,j;
        
        long long a[10005],b[10005];
        scanf("%lld%lld",&n,&k);
        memset(b,0,sizeof(b));
        scanf("%lld",&a[1]);
        b[1]=a[1];
        for(i=2;i<=n;i++){
            scanf("%lld",&a[i]);
            b[i]+=b[i-1]+a[i];
        }
        f=0;
        for(i=1;i<=n;i++){
            for(j=i;j<=n;j++){
                if(b[j]-b[i-1]==k){
                    printf("%lld %lld
    ",i,j);
                    f=1;
                    break;
                }
            }
            if(f==1) break;
        }
        if(f==0) printf("No Solution
    ");
        return 0;
    }
  • 相关阅读:
    打印日志宏定义
    数据库读写操作
    SQL语句组成
    MySQL数据库的使用
    ubuntu下解决MySQL 1045 error
    css样式优先级
    redis
    dubbo
    maven
    Mybatis笔记
  • 原文地址:https://www.cnblogs.com/yzm10/p/7191321.html
Copyright © 2011-2022 走看看