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

codeforces 490 D Chocolate

Codeforces 633F The Chocolate Spree 树形dp

A. Vasya and Chocolate