- 1#include 2#define cl(a, b) memset(a, b, sizeof(a)) 3#define debug(x) cerr << #x << "==" << (x) < 4 using namespace std;
- 5 typedef long long ll;
- 6 typedef pair < int,
- int > pii;
- 7 8 const int maxn = 5e4 + 10;
- 9 10 int n,
- m;
- 11 ll a[maxn],
- aa[maxn],
- bb[maxn];
- 12 13 void init() 14 {
- 15 cl(aa, 0),
- cl(bb, 0);
- 16
- for (int i = 1; i <= n; i++) 17 {
- 18 aa[i] = 1ll * a[i] * a[i] * a[i] * a[i] * a[i] + aa[i - 1]; //最后这个aa打成了a
- 19 bb[i] = 1ll * a[i] * a[i] * a[i] + bb[i - 1];
- 20
- }
- 21
- }
- 22 23 int main() 24 {
- 25 cl(a, 0);
- 26 scanf("%d", &n);
- 27
- for (int i = 1; i <= n; i++) 28 {
- 29 scanf("%lld", &a[i]);
- 30
- }
- 31 init();
- 32 scanf("%d", &m);
- 33
- while (m--) 34 {
- 35 int num;
- 36 scanf("%d", &num);
- 37 ll tmpa = 0,
- tmpb = 0;
- 38
- for (int i = 1; i <= num; i++) 39 {
- 40 ll tmp;
- 41 scanf("%lld", &tmp);
- 42 tmpa += tmp * tmp * tmp * tmp * tmp;
- 43 tmpb += tmp * tmp * tmp;
- 44
- }
- 45 int ans = 0;
- 46
- for (int j = 1; j + num - 1 <= n; j++) 47 {
- 48
- if (tmpa == aa[j + num - 1] - aa[j - 1] 49 && tmpb == bb[j + num - 1] - bb[j - 1]) 50 {
- 51 ans++;
- 52
- }
- 53
- }
- 54 printf("%dn", ans);
- 55
- }
- 56
- return 0;
- 57
- }
- /*
- 58
- 59 5
- 60 2 3 1 3 2
- 61 3
- 62 4
- 63 3 2 1 3
- 64 2
- 65 1 3
- 66 2
- 67 3 2
- 68
- 69 */
来源: http://www.bubuko.com/infodetail-2102234.html