Victor’s Research
题目链接: C - Victor’s Research Gym - 100247C
题意
求一个数组中有多少非空区间满足和为s
思路
和上一题一样的套路,记sum[i]=∑_(k=1)^i▒a_k ,那么题目就变成了求多少对(l,r)满足sum[r]-sum[l-1]=s,用map计数即可。
注意sum[0]=1,答案会爆int。
代码
#include <bits/stdc++.h>
using namespace std;
#define rep(i,j,k) for(int i = (int)j;i <= (int)k;i ++)
#define per(i,j,k) for(int i = (int)j;i >= (int)k;i --)