A13790 | Fruit Sequences
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
Zookeeper is buying a carton of fruit to feed his pet wabbit. The fruits are a sequence of apples and oranges, which is represented by a binary string $s_1s_2\ldots s_n$ of length $n$ . $1$ represents an apple and $0$ represents an orange.
Since wabbit is allergic to eating oranges, Zookeeper would like to find the longest contiguous sequence of apples. Let $f(l,r)$ be the longest contiguous sequence of apples in the substring $s_{l}s_{l+1}\ldots s_{r}$ .
Help Zookeeper find $\sum_{l=1}^{n} \sum_{r=l}^{n} f(l,r)$ , or the sum of $f$ across all substrings.
Since wabbit is allergic to eating oranges, Zookeeper would like to find the longest contiguous sequence of apples. Let $f(l,r)$ be the longest contiguous sequence of apples in the substring $s_{l}s_{l+1}\ldots s_{r}$ .
Help Zookeeper find $\sum_{l=1}^{n} \sum_{r=l}^{n} f(l,r)$ , or the sum of $f$ across all substrings.
输入格式
The first line contains a single integer $n$ $(1 \leq n \leq 5 \cdot 10^5)$ .
The next line contains a binary string $s$ of length $n$ $(s_i \in \{0,1\})$
The next line contains a binary string $s$ of length $n$ $(s_i \in \{0,1\})$
输出格式
Print a single integer: $\sum_{l=1}^{n} \sum_{r=l}^{n} f(l,r)$ .
输入输出样例
输入 #1
4 0110
输出 #1
12
输入 #2
7 1101001
输出 #2
30
输入 #3
12 011100011100
输出 #3
156
In the first test, there are ten substrings. The list of them (we let $[l,r]$ be the substring $s_l s_{l+1} \ldots s_r$ ):
- $[1,1]$ : 0
- $[1,2]$ : 01
- $[1,3]$ : 011
- $[1,4]$ : 0110
- $[2,2]$ : 1
- $[2,3]$ : 11
- $[2,4]$ : 110
- $[3,3]$ : 1
- $[3,4]$ : 10
- $[4,4]$ : 0
The lengths of the longest contiguous sequence of ones in each of these ten substrings are $0,1,2,2,1,2,2,1,1,0$ respectively. Hence, the answer is $0+1+2+2+1+2+2+1+1+0 = 12$ .
- $[1,1]$ : 0
- $[1,2]$ : 01
- $[1,3]$ : 011
- $[1,4]$ : 0110
- $[2,2]$ : 1
- $[2,3]$ : 11
- $[2,4]$ : 110
- $[3,3]$ : 1
- $[3,4]$ : 10
- $[4,4]$ : 0
The lengths of the longest contiguous sequence of ones in each of these ten substrings are $0,1,2,2,1,2,2,1,1,0$ respectively. Hence, the answer is $0+1+2+2+1+2+2+1+1+0 = 12$ .
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted