SZ-G6DP13. 【GESP强化 六级】NAND 运算

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB
    ID: 11527 传统题 2000ms 256MiB 尝试: 1 已通过: 1 难度: 普及- 上传者: 标签>GESPGESP强化C++c++编程题简单序列型DP一维DP逻辑运算2星

题目描述

给定一个由 0 和 1 组成的长度为 NN 的字符串 SS。SS 表示一个长度为 NN 的数列 A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N),其中 SS 的第 ii 个字符(1≤i≤N1\leq i\leq N)为 0 时 Ai=0A_i=0,为 1 时 Ai=1A_i=1。

请计算下式的值:

$$\sum_{1\leq i\leq j\leq N}(\cdots((A_i\barwedge A_{i+1})\barwedge A_{i+2})\barwedge\cdots\barwedge A_j)$$

更严格地说,对于如下定义的 f(i,j) (1≤i≤j≤N)f(i,j)\ (1\leq i\leq j\leq N),请计算 ∑i=1N∑j=iNf(i,j)\displaystyle\sum_{i=1}^{N}\sum_{j=i}^{N}f(i,j)。

$$f(i,j)=\left\{ \begin{matrix} A_i & (i=j)\\ f(i,j-1)\barwedge A_j & (i<j) \end{matrix} \right.$$

其中,否定与(⊼\barwedge)是满足以下规则的二元运算符:

$$0\barwedge0=1,\ 0\barwedge1=1,\ 1\barwedge0=1,\ 1\barwedge1=0$$

输入格式

输入以如下格式从标准输入读入。

NN SS

输出格式

请输出答案,输出一行。

5
00110
9
30
101010000100101011010011000010
326
2
00
1

说明/提示

样例解释 1

对于所有满足 1≤i≤j≤N1\leq i\leq j\leq N 的 (i,j)(i,j) 组合,f(i,j)f(i,j) 的值如下所示:

  • f(1,1)=0=0f(1,1)=0=0
  • f(1,2)=0⊼0=1f(1,2)=0\barwedge0=1
  • f(1,3)=(0⊼0)⊼1=0f(1,3)=(0\barwedge0)\barwedge1=0
  • f(1,4)=((0⊼0)⊼1)⊼1=1f(1,4)=((0\barwedge0)\barwedge1)\barwedge1=1
  • $f(1,5)=(((0\barwedge0)\barwedge1)\barwedge1)\barwedge0=1$
  • f(2,2)=0=0f(2,2)=0=0
  • f(2,3)=0⊼1=1f(2,3)=0\barwedge1=1
  • f(2,4)=(0⊼1)⊼1=0f(2,4)=(0\barwedge1)\barwedge1=0
  • f(2,5)=((0⊼1)⊼1)⊼0=1f(2,5)=((0\barwedge1)\barwedge1)\barwedge0=1
  • f(3,3)=1=1f(3,3)=1=1
  • f(3,4)=1⊼1=0f(3,4)=1\barwedge1=0
  • f(3,5)=(1⊼1)⊼0=1f(3,5)=(1\barwedge1)\barwedge0=1
  • f(4,4)=1=1f(4,4)=1=1
  • f(4,5)=1⊼0=1f(4,5)=1\barwedge0=1
  • f(5,5)=0=0f(5,5)=0=0

这些值的总和为 0+1+0+1+1+0+1+0+1+1+0+1+1+1+0=90+1+0+1+1+0+1+0+1+1+0+1+1+1+0=9,因此请输出 99。

请注意,⊼\barwedge 不满足结合律。例如,$(1\barwedge1)\barwedge0=0\barwedge0=1\neq0=1\barwedge1=1\barwedge(1\barwedge0)$。

限制条件

  • 1≤N≤1061\leq N\leq 10^6
  • SS 是由 0 和 1 组成的长度为 NN 的字符串
  • 输入均为整数