zoukankan      html  css  js  c++  java
  • 牛客小白月赛5 I 区间 (interval) 【前缀和】

    链接:https://www.nowcoder.com/acm/contest/135/I

    题目描述

        Apojacsleam喜欢数组。

        他现在有一个n个元素的数组a,而他要对a[L]-a[R]进行M次操作:

            操作一:将a[L]-a[R]内的元素都加上P

            操作二:将a[L]-a[R]内的元素都减去P

        最后询问a[l]-a[r]内的元素之和?
        请认真看题干及输入描述。

    输入描述:

    输入共M+3行:

    第一行两个数,n,M,意义如“题目描述”

    第二行n个数,描述数组。

    第3-M+2行,共M行,每行四个数,q,L,R,P,若q为1则表示执行操作2,否则为执行操作1

    第4行,两个正整数l,r

    输出描述:

    一个正整数,为a[l]-a[r]内的元素之和
    示例1

    输入

    复制
    10 5
    1 2 3 4 5 6 7 8 9 10
    1 1 5 5
    1 2 3 6
    0 2 5 5 
    0 2 5 8
    1 4 9 6
    2 7

    输出

    复制
    23

    说明

     
    思路:
     
    使用 懒标记数组,标记询问操作,最后统一计算。
    题目中问的 区间和 可以使用 For 从头加到尾,也可在统一处理标记数组的时候求 前缀和,然后  sum[r] - sum[l-1]
     
    AC代码:
     1 #include <cstdio>
     2 #include <iostream>
     3 using namespace std;
     4 const int MAXN=1000000+5;
     5 long long flag[MAXN];
     6 int ele[MAXN];
     7 int main(){
     8     int n,M;
     9     cin>>n>>M;
    10     for(int i=1;i<=n;i++)
    11         scanf("%d",&ele[i]);
    12     int q,L,R,P;
    13     for(int i=0;i<M;i++){
    14         cin>>q>>L>>R>>P;
    15         if(q==1){
    16             flag[L]-=P;
    17             flag[R+1]+=P;
    18         }else{
    19             flag[L]+=P;
    20             flag[R+1]-=P;
    21         }
    22     }
    23  
    24  
    25     int l,r;
    26     cin>>l>>r;
    27     long long ans=0;
    28     long long tmp=0;
    29     for(int i=1;i<=n;i++){
    30         tmp+=flag[i];
    31         ele[i]=ele[i]+tmp;
    32     }
    33      
    34     for(int i=l;i<=r;i++)
    35         ans+=ele[i];
    36      
    37  
    38      
    39     cout<<ans<<endl;
    40     return 0;
    41 }
  • 相关阅读:
    运动习惯
    无伤跑法
    libopencv_videoio.so, need by /lib/libopencv_highgui.so, not found (try using -rpath or -rpath-link)
    HI3536安装交叉编译工具链
    ubuntu源码安装cmake
    error: ‘CV_BGR2GRAY’ was not declared in this scope
    U8 EAI实现XML的生成
    一个关于车牌识别的文章,感谢作者的分享
    常用的PHP框架
    10款免费而优秀的图表JS插件
  • 原文地址:https://www.cnblogs.com/TianyuSu/p/9383106.html
Copyright © 2011-2022 走看看