当前位置: 首页 > article >正文

【CodeForces】Codeforces Round 859 (Div. 4) D

嘿嘿嘿,CF虐我千百遍,我待CF如初见! (doge)

目录

题目含义:

前缀和:

代码 

🎆音乐分享(点击链接可以听哦)

A Hundred Miles(一百英里) - Meat Puppets - 单曲 - 网易云音乐 (163.com)


  

Problem - D - Codeforces

🏳️‍🌈🏳️‍🌈🏳️‍🌈

小吉是真的没有想到这道题可以用前缀和来写(学了前缀和,但是没有发挥用途,我真的会乌鱼呀,让我怎么荔枝呀(纯纯坤语言doge)) 

 🏳️‍🌈🏳️‍🌈🏳️‍🌈

这道题依然传承了cf的基本格式( t 个样例,然后进行讨论)

cf的题,都会给出样例,如果题目描述中有样例解释,一定要看,因为有时候题目看不懂(呜呜呜,因为是英语),但是看样例却可以看懂,甚至可以做对题

题目含义:

总个数 n  

题目中给出了 l r k 三个字母,其中,l 可以代表左边界的下标,r 可以代表右边界的下标,

(l - r + 1)代表需要替换的长度,这个长度中的每个数的大小是 k 

(比如 l=2 r=3 k=3,那么长度为2,为 [ 3 , 3] )

情况1:替换的长度(l - k + 1) = n

那么所有的数(n个数)的值都为k

情况2:替换的长度(l - k + 1) < n

由于替换的长度(l - k + 1) < n,那么就要用原数组的数来补全没有被替换掉的数

这个时候,我们应该如何在原数组里面对应被替换掉的数的位置和数组中剩下的数的位置和大小呢,这就要用到前缀和了 

前缀和:

什么是前缀和:
原数组: a[1], a[2], a[3], a[4], a[5], …, a[n]
前缀和 Si为数组的前 i项和
前缀和: S[i] = a[1] + a[2] + a[3] + … + a[i]

求 [l, r]中的和, 即为 S[r] - S[l-1]

前缀和的作用:
快速求出元素组中某段区间的和

方法:

首先做一个预处理,定义一个sum[]数组,sum[i]代表a数组中前i个数的和

for(int i = 1; i <= n;i++)

    sum[i] = sum[i - 1] + a[i];   
}

这样,对于每个询问,只需要执行 sum[r]-sum[l-1]。输出原序列中从第l个数到第r个数的和的时间复杂度变成了O(1)。

注意:

下标最好从1开始(从0开始也可以,主要是根据个人习惯)

具体案例请参考下面的代码

代码 

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+10;
ll a[N],sum[N];
int main(){
	int t;
	cin>>t;
	while(t--){
		int n,q;
		cin>>n>>q;
		for(int i=1;i<=n;i++)cin>>a[i];
		for(int i=1;i<=n;i++)sum[i]=sum[i-1]+a[i];//前缀和
		while(q--){
			int l,r,k;
			cin>>l>>r>>k;
			ll ans=sum[n]-(sum[r]-sum[l-1])+(r-l+1)*k;
			if(ans%2==0)cout<<"NO"<<endl;
			else cout<<"YES"<<endl;
		}
	}
}

Code over!


http://www.kler.cn/a/2805.html

相关文章:

  • UVC 输出视频格式修改和windows下数据分析
  • GxtWaitCursor:Qt下基于RAII的鼠标等待光标类
  • 图像处理实验二(Image Understanding and Basic Processing)
  • 多叉树笔记
  • 【测试框架篇】单元测试框架pytest(1):环境安装和配置
  • 【Linux】进程池实现指南:掌控并发编程的核心
  • 看完这篇 教你玩转渗透测试靶机vulnhub——My File Server: 1
  • Android11以上版本使用高德定位,定位成功,卫星数一直为0
  • 【TypeScript 入门】14.泛型
  • 微软Bing GPT支持AI绘画了,输入文字就能出图
  • 值得记忆的STL常用算法,分分钟摆脱容器调用的困境,以vector为例,其余容器写法类似
  • Kotlin~Singleton单例模式
  • 文心一言 vs GPT-4 —— 全面横向比较
  • Halcon转OpenCV实例--纺织物折痕检测(附源码)
  • 防火墙和IDS
  • javaScript防抖与节流函数
  • 如何高效的导出 百万级别的数据量 到 Excel?
  • vscode 常用插件记录
  • 交通信号标志识别软件(Python+YOLOv5深度学习模型+清新界面)
  • leetcode每日一题:1005. K 次取反后最大化的数组和
  • Spring八股文
  • 菜鸟刷题Day2
  • 传输层协议----UDP/TCP
  • 利用python写一个gui小公举--制作一个小公举
  • 经典七大比较排序算法 ·上
  • 【Zblog建站】搭建属于自己的博客网站,并内网穿透实现公网访问