本题定义一个数组的元素i在等于其他元素和时称为完美数组,求一个数组的前缀数组(如[1,2,3]的前缀数组是[1,2],[1,2,3])中有几个完美数组
代码:
#include<bits/stdc++.h>
using namespace std;
long long a[100005];
int n;
int main()
{
cin>>n;
long long x;
for(int i=1;i<=n;i++)
{
cin>>x;
a[i]=x+a[i-1];
}
long long ans=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
if(a[j]-a[j-1]==a[j-1]+a[i]-a[j]){ans++;break;}
cout<<ans;
return 0;
}
求O(n)做法