CodeForces 617B Chocolate
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeForces 617B Chocolate相关的知识,希望对你有一定的参考价值。
统计一下 每两个1之间0的个数+1,把这些数字乘起来就可以。
注意两个地方:会爆int,需要开long long。所有数字都是0的时候输出0。
#include<cstdio> #include<cstring> #include<vector> #include<cmath> #include<queue> #include<list> #include<algorithm> using namespace std; const int maxn=100+10; int n; int a[maxn]; vector<long long>v; int main() { scanf("%d",&n); long long ans=0; int first=-1,last=-1; for(int i=1; i<=n; i++) scanf("%d",&a[i]); for(int i=1; i<=n; i++) { if(a[i]) { first=i; break; } } for(int i=n; i>=1; i--) { if(a[i]) { last=i; break; } } if(first!=-1) { v.clear(); long long num=0; for(int i=first; i<=last; i++) { if(a[i]==1) { v.push_back(num+1); num=0; } if(a[i]==0) num++; } } if(v.size()==0) printf("0\n"); else { ans=1; for(int i=0; i<v.size(); i++) ans=ans*v[i]; printf("%lld\n",ans); } return 0; }
以上是关于CodeForces 617B Chocolate的主要内容,如果未能解决你的问题,请参考以下文章
codeforces 598E E. Chocolate Bar(区间dp)
Codeforces 450C:Jzzhu and Chocolate(贪心)
Codeforces Round #340 (Div. 2) B. Chocolate