#5424. 一维前缀和笔记2

一维前缀和笔记2

当前没有测试数据。

一维前缀和笔记2

一、复习

一维前缀和数组的作用:快速求出第x个数字到第y个数字的和

数学上,第x个到第y个,可以用区间[x,y]表示

前面的题目都是直接给出区间[x,y],所以构建好前缀和数组后,直接b[y]-b[x-1]就可以求和。

but 如果题目给的是一个区间的其他信息,例如区间长度k

https://www.yuanmabc.cn/p/5423

二、一维前缀和变形题

有很多个区间长度为k,列出所有长度为k的区间起点x和终点y

x和y两个变量的变化是同时的,所以用一层循环就可以。

尝试自己做下这道题

https://www.yuanmabc.cn/p/P5307

如果代码思路不完整,可以先看参考代码,完整地理解一遍再尝试独立写代码

看一行写一行不代表你真正理解哦!

参考代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,k;
	cin>>n>>k;
	for(int x=1,y=k;y<=n;x++,y++){
		cout<<x<<" "<<y<<endl; 
	}
	return 0;
}

有了x和y,不就可以用一维前缀和数组b[y]-b[x-1]求和了吗

尝试参照以上代码来解决下面这道题吧

https://www.yuanmabc.cn/p/5423

三、练习题

https://www.yuanmabc.cn/p/P3310

https://www.yuanmabc.cn/p/P2054

https://www.yuanmabc.cn/p/P1165

https://www.yuanmabc.cn/p/P2534