测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A6241. 「POI2010」反对称 Antisymmetry

编程题 提高+/省选-
知识点

题目描述

**译自 POI 2010 Stage 2. Day 0「[Antisymmetry](https://szkopul.edu.pl/problemset/problem/EDxOyJiFZWb_PYVaYhhnhU0-/site/?key=statement)」**

对于一个 $0/1$ 字符串,如果将这个字符串 $0$ 和 $1$ 取反后,再将整个串反过来和原串一样,就称作「反对称」字符串。比如 $00001111$ 和 $010101$ 就是反对称的,而 $1001$ 就不是。
现在给出一个长度为 $n$ 的 $0/1$ 字符串,求它有多少个子串是反对称的,注意这里相同的子串出现在不同的位置会被重复计算。

输入格式

第一行一个正整数 $n$ 。
第二行一个长度为 $n$ 的 $0/1$ 字符串。

输出格式

一行一个整数,表示原串的反对称子串个数。

输入输出样例

输入 #1
8
11001011
输出 #1
7

说明/提示

对于 $100\%$ 的数据, $1\le n\le 500\ 000$ 。

Translated by vincent163
上一题 去做题 下一题