计蒜之道第五场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题的主要内容,如果未能解决你的问题,请参考以下文章
2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建
2017 计蒜之道 初赛 第五场 B. UCloud 的安全秘钥(简单)
2017 计蒜之道 初赛 第五场 C. UCloud 的安全秘钥(中等)