20111 无解的子序列计数

题目描述

递归算法是一种非常优美的算法,一个好的递归可以 过百万 ——题记

问小 一个问题,问题很简单,小 将给出一个长度为 串,小 需要回答这个 串里面有多少个子序列为 01

觉得这道题太简单了,就把问题扔给了你,相信聪明的你一定能解决。

注:子序列不需要连续。

输入格式

共两行。

第一行一个整数 ,表示 串的长度。

第二行为一个只包含 的长度为 的串。

输出格式

共一行,表示小 需要回答的答案。

样例

Input #1

5
10110

Output #1

2
数据范围与提示

对于 的数据,

对于 的数据,

分类标签

[字符串] [枚举]

C++题解代码

#include <bits/stdc++.h>
using namespace std;

int a;
long long d;
long long c;
char b;


int main() {
  cin>>a;
  c = 0;
  d = 0;
  for (int i = 0; i < a; i++) {
    cin>>b;
    if (b == '0') {
      c++;
    } else {
      d += c;
    }
  }
  cout<<d;
  return 0;
}

Blockly题解代码图片