求助一个站外题 前缀和
  • 板块灌水区
  • 楼主ZYH20190341315
  • 当前回复11
  • 已保存回复11
  • 发布时间2021/5/29 16:42
  • 上次更新2023/11/4 22:33:38
查看原帖
求助一个站外题 前缀和
400760
ZYH20190341315楼主2021/5/29 16:42

求一个O(n * n)一下的算法思路

给定你n个数字ai,请你求出有多少个区间[l,r],满足该区间的数字之和等于其区间长度。

(1<=n<=1e5)

3

1 2 0

3

#include<iostream>
using namespace std;
long long a[100000]={0};
int main()
{
	int n,k=0;
	int j=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		a[i]+=a[i-1];
	}
	//[x,y]的区间和 
	//cout<<a[y]-a[x-1]<<endl;
	for(int i=1;i<=n;i++)
	{
		for(int j=i;j<=n;j++)
		if(j-(i-1)==a[j]-a[i-1])
		k++;
	}
	cout<<k;
	return 0;
}
2021/5/29 16:42
加载中...