牛客小白月赛5 I 区间 (interval) 【前缀和】

摘要:
请仔细阅读题干并输入描述。输入描述:总共输入M+3行:第一行中有两个数字,n,M,表示“主题描述”第二行中的n个数字,用于描述数组。问题中的间隔和可以使用For从开始到结束相加,或者可以在统一处理标记数组时计算前缀和,然后sum[r]-sum[l-1]AC代码:1#include<csdio>2#include<iostream>3usingspacestd;4约束最大N=1000000+5;5长标志[MAXN];6整数[MAXN];7intmain(){8intn,M;9cin˃˃n˃˃M;10for11扫描;12intq,L,R,P;13for{14cin˃˃q˃˃L˃˃R˃˃P;15if{16flag[L]-=P;17flag[R+1]+=P;18}否则{19flag[L]+=P;20flag[R+1]-=P,21}22}232425intl,R;26cin˃˃l˃˃r;27只龙眼=0;28longlongmp=0;29表示{30tmp+=flag[i];31ele[i]=ele[i]+tmp;32}3334表示35ans+=ele[i];36373839个国家;40返回0;41}

链接: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

说明

牛客小白月赛5 I 区间 (interval) 【前缀和】第1张
 
思路:
 
使用 懒标记数组,标记询问操作,最后统一计算。
题目中问的 区间和 可以使用 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 }

免责声明:文章转载自《牛客小白月赛5 I 区间 (interval) 【前缀和】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【原创】打造基于Dapper的数据访问层ELK之使用metricbeat收集系统数据及其他程序并生成可视化图表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

IDEA的设置打不开,点了没反应解决办法

把它去掉用回英文d就可以了。...

JS前端数据多条件筛选(商品搜索)

有时候也会需要在前端进行数据筛选,增强交互体验。当数据可用的筛选条件较多时,把逻辑写死会给后期维护带来很大麻烦。进行商品按条件筛选主要是利用Arrary.prototype.filter对数组元素进行遍历检查,返回一个符合检查条件的新数组,不会改变原数组。为了能自动适配不同的筛选条件,将筛选条件分为两个大类,一个是区间类型rangesFilter,如:品牌、...

2022年可用QQ机器人框架

4.小李子机器人官网:https://xiaolz.cn评估:支持多个Q登录和论坛似乎是目前最活跃的。它支持许多api,可以满足许多需求。没有限制,但有很多错误。...

应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITYSYSTEM SID (S-1-5-18)授予针对 CLSID 为 {D63B10C5-BB46-4990-A94F-E40B9D520

此安全权限可以使用组件服务管理工具进行修改。根据APPID为{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}在注册表中找到HKEY_CLASSES_ROOTAppID{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}右键选择权限:加入SYSTEM用户并赋予完全控制权限:如果在注册表中没有权限添加用户,则需...

springboot 学习之路 27(实现ip白名单功能)

listIps.contains){response.getWriter().print;returnfalse;}returntrue;}@OverridepublicvoidpostHandlethrowsException{}@OverridepublicvaidafterCompletionthrowsException}/**获取合格的项目*@re...

自己写了一个war3窗口模式限定鼠标软件

由于魔兽3不支持宽屏,所以需要鼠标限定软件,以前一直是用的shaquila的war3窗口模式限定鼠标软件,他这个软件还算小巧好用,该有的功能都有,基本上也没有什么bug。游戏重启后不能自动重新设置窗口大小。基于上述的这几个问题,我便仿照他这个工具也写了一个。只要窗口锁定生效,说明当前正在进行游戏,程序会自动最小化,不会占用桌面空间。另外,在界面上也改善了一下...