计蒜之道第五场C题

Posted 可是我不配

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计蒜之道第五场C题相关的知识,希望对你有一定的参考价值。

稀里糊涂拖到了第五场……

最后倒在了自己脚下……

变量名打错了找不出bug……

人生还是真的尴尬呢……

 

 1 #include<bits/stdc++.h>
 2 #define cl(a,b) memset(a,b,sizeof(a))
 3 #define debug(x) cerr<<#x<<"=="<<(x)<<endl
 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("%d\n",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 */

 

以上是关于计蒜之道第五场C题的主要内容,如果未能解决你的问题,请参考以下文章

2018 计蒜之道 初赛 第五场

2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建

2017 计蒜之道 初赛 第五场 B. UCloud 的安全秘钥(简单)

2017 计蒜之道 初赛 第五场 C. UCloud 的安全秘钥(中等)

2017 计蒜之道 初赛 第五场 UCloud 的安全秘钥(中等)

计蒜之道2018复赛