Codeforces Round #340 (Div. 2) B. Chocolate

题意:一段01串 分割成段 每段只能有一个1 问一段串有多少种分割方式

思路:两个1之间有一个0就有两种分割方式,然后根据分步乘法原理来做、

(不过这里有一组0 1 0这种数据的话就不好直接处理,所以遇到第一个1才开始标记)

 

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     long long l=0;
 6     int n;
 7     cin>>n;
 8     int a;
 9     int j=0;
10     int s=0;
11     for(int i=0;i<n;i++)
12     {
13         cin>>a;
14         if(s)
15         {
16             if(a==1){
17             l*=j+1;
18             j=0;}
19             else
20             j++;
21         }
22         if(a==1 && s!=1)
23         s=1,l=1;
24     }
25     cout<<l;
26 }

 

posted @ 2016-01-26 21:09  我不萌、我要高冷  阅读(142)  评论(0编辑  收藏  举报