AT_abc310_e [ABC310E] NAND repeatedly
题目描述
给定一个由 0 和 1 组成的长度为 N 的字符串 S。S 表示一个长度为 N 的数列 A=(A1,A2,…,AN),其中 S 的第 i 个字符(1≤i≤N)为 0 时 Ai=0,为 1 时 Ai=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),请计算 i=1∑Nj=i∑Nf(i,j)。
$$f(i,j)=\left\{
\begin{matrix}
A_i & (i=j)\\
f(i,j-1)\barwedge A_j & (i<j)
\end{matrix}
\right.$$
其中,否定与(⊼)是满足以下规则的二元运算符:
$$0\barwedge0=1,\ 0\barwedge1=1,\ 1\barwedge0=1,\ 1\barwedge1=0$$
输入格式
输入以如下格式从标准输入读入。
N S
输出格式
请输出答案,输出一行。
输入输出样例 #1
输入 #1
5
00110
输出 #1
9
输入输出样例 #2
输入 #2
30
101010000100101011010011000010
输出 #2
326
说明/提示
限制条件
- 1≤N≤106
- S 是由
0 和 1 组成的长度为 N 的字符串
- 输入均为整数
样例解释 1
对于所有满足 1≤i≤j≤N 的 (i,j) 组合,f(i,j) 的值如下所示:
- f(1,1)=0=0
- f(1,2)=0⊼0=1
- f(1,3)=(0⊼0)⊼1=0
- f(1,4)=((0⊼0)⊼1)⊼1=1
- $f(1,5)=(((0\barwedge0)\barwedge1)\barwedge1)\barwedge0=1$
- f(2,2)=0=0
- f(2,3)=0⊼1=1
- f(2,4)=(0⊼1)⊼1=0
- f(2,5)=((0⊼1)⊼1)⊼0=1
- f(3,3)=1=1
- f(3,4)=1⊼1=0
- f(3,5)=(1⊼1)⊼0=1
- f(4,4)=1=1
- f(4,5)=1⊼0=1
- f(5,5)=0=0
这些值的总和为 0+1+0+1+1+0+1+0+1+1+0+1+1+1+0=9,因此请输出 9。
请注意,⊼ 不满足结合律。例如,$(1\barwedge1)\barwedge0=0\barwedge0=1\neq0=1\barwedge1=1\barwedge(1\barwedge0)$。
由 ChatGPT 4.1 翻译