#risk. 2026年南昌市信息学竞赛提高组-T2 风控羊

2026年南昌市信息学竞赛提高组-T2 风控羊

风控羊(risk)

问题背景

小 D 是咩咩银行的风控专员,负责账单风险评估。

问题描述

账单是一个长为 nn 的 01 字符串,小 D 要找出其中有多少可能的风险片段。

一个风险片段是字符串中连续的一段,且满足:如果将该段翻转,得到的新串每个位置与原先正好相反。

例如:010101 翻转后为 101010,所以是一个风险片段;而 0111 则不是。注意根据定义,风险片段的长度一定是偶数。求输入字符串中总共有几个风险片段?值一样、位置不一样的两个子串算不同片段。

输入格式

从文件 risk.in 中读取数据。

第一行一个正整数 nn。

第二行一个长为 nn 的字符串,只包含字符 0 和 1,不含空格。

输出格式

输出到文件 risk.out。

输出一个整数表示答案。

样例 1

8
11001011
7

样例 1 解释

七个片段分别为:10(共两个)、01(共两个)、1100(一个)、0101(一个)、001011(一个)。

样例 2

3
111
0

数据规模与约定

  • 30% 的数据,n≤100n\leq 100。
  • 60% 的数据,n≤2000n\leq 2000。
  • 100% 的数据,1≤n≤5000001\leq n\leq 500000,输入字符串只包含字符 0 和 1。

所有测试点时限均为 1 秒,内存限制均为 512 MiB。

文件读写说明

必须使用文件读写。在 main 函数开头加入:

freopen("risk.in", "r", stdin);
freopen("risk.out", "w", stdout);
难度 未评定
通过率 —
尝试 0
通过 0
ID
3915
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者

相关