CF1186C.Vus the Cossack and Strings

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

哥萨克 Vus 有两个二进制字符串,即仅由“0”和“1”组成的字符串。我们称这两个字符串为 aa 和 bb。已知 ∣b∣≤∣a∣|b| \leq |a|,即 bb 的长度不超过 aa 的长度。

Vus 会考虑 aa 中所有长度为 ∣b∣|b| 的子串。我们称这些子串为 cc。他将 bb 和 cc 中对应位置的字符进行比较,并统计两串中不同位置的数量。我们将这个函数记为 f(b,c)f(b, c)。

例如,设 b=00110b = 00110,c=11000c = 11000。在这两个字符串中,第 1、2、3 和 4 个位置的字符不同。

Vus 统计所有满足 f(b,c)f(b, c) 为偶数的子串 cc 的数量。

例如,设 a=01100010a = 01100010,b=00110b = 00110。aa 有四个长度为 ∣b∣|b| 的子串:0110001100、1100011000、1000110001、0001000010。

  • f(00110,01100)=2f(00110, 01100) = 2;
  • f(00110,11000)=4f(00110, 11000) = 4;
  • f(00110,10001)=4f(00110, 10001) = 4;
  • f(00110,00010)=1f(00110, 00010) = 1。

由于有三个子串 f(b,c)f(b, c) 为偶数,所以答案是 33。

对于较长的字符串,Vus 无法计算答案。因此他请求你帮助他。

输入格式

第一行包含一个二进制字符串 aa(1≤∣a∣≤1061 \leq |a| \leq 10^6)——第一个字符串。

第二行包含一个二进制字符串 bb(1≤∣b∣≤∣a∣1 \leq |b| \leq |a|)——第二个字符串。

输出格式

输出一个整数,表示满足条件的子串数量。

输入输出样例

  • 输入#1

    01100010
    00110
    

    输出#1

    3
    
  • 输入#2

    1010111110
    0110
    

    输出#2

    4
    

说明/提示

第一个样例在题目描述中已经解释。

在第二个样例中,有五个满足条件的子串:10101010、01010101、11111111、11111111。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页