前缀和与后缀和(1)

前缀和(1)

前缀和原来就是前n项和呀,通过递推可以方便求得,而且好像可以降低复杂度.

前天在CF上做到了一道题,正好用前缀和.
题目链接 : https://codeforces.com/contest/1118/problem/B

代码:

#include
#define ll long long
int a[200005],even[200005],odd[200005],n,k,i,j,cnt;
int main()
{
	scanf("%d",&n);
	for(i=0;i0)
			{
			 	  even[i]=even[i-1]+a[i];
				   odd[i]=odd[i-1];	
			}
			else even[i]=a[i];
		}
		else {
			odd[i]=odd[i-1]+a[i];
			even[i]=even[i-1];
		}
	}
	if(even[n-1]-a[0]==odd[n-1])cnt++;
	for(i=1;i

你可能感兴趣的:(ACM)