翻译
查看原帖
翻译
360265
Galois_Field_1048576楼主2023/2/4 17:37
# 题目描述

给定一个长度为 $n$ 的字符串 $s$,和一个长为 $n$ 的序列 $a$(保证 $s$ 只包含 $\tt G$ 或 $\tt H$),定义 $i$ 的管辖范围为 $[i, a_i]$(保证 $a_i \ge i$),你需要计算有多少对 $(g,h)$ 满足以下所有条件:

* $a_g = {\tt G}$
* $a_h = {\tt H}$
* 以下两个条件满足至少一个:
  * 对于每一个满足 $a_i = {\tt G}$ 的 $i$,$i$ 都在 $g$ 的管辖范围之内。
  * $h$ 在 $g$ 的管辖范围之内。
* 以下两个条件满足至少一个:
  * 对于每一个满足 $a_i = {\tt H}$ 的 $i$,$i$ 都在 $h$ 的管辖范围之内。
  * $g$ 在 $h$ 的管辖范围之内。

# 输入格式

第一行一个整数 $n$。
第二行一个字符串 $s$。
第三行 $n$ 个整数,第 $i$ 个整数表示 $a_i$。

# 输出格式

一行一个整数,表示结果。

# 数据范围

* $n \in [1, 10^5]$
* $a_i \in [i, n]$

效果:

题目描述

给定一个长度为 nn 的字符串 ss,和一个长为 nn 的序列 aa(保证 ss 只包含 G\tt GH\tt H),定义 ii 的管辖范围为 [i,ai][i, a_i](保证 aiia_i \ge i),你需要计算有多少对 (g,h)(g,h) 满足以下所有条件:

  • ag=Ga_g = {\tt G}
  • ah=Ha_h = {\tt H}
  • 以下两个条件满足至少一个:
    • 对于每一个满足 ai=Ga_i = {\tt G}iiii 都在 gg 的管辖范围之内。
    • hhgg 的管辖范围之内。
  • 以下两个条件满足至少一个:
    • 对于每一个满足 ai=Ha_i = {\tt H}iiii 都在 hh 的管辖范围之内。
    • gghh 的管辖范围之内。

输入格式

第一行一个整数 nn。 第二行一个字符串 ss。 第三行 nn 个整数,第 ii 个整数表示 aia_i

输出格式

一行一个整数,表示结果。

数据范围

  • n[1,105]n \in [1, 10^5]
  • ai[i,n]a_i \in [i, n]
2023/2/4 17:37
加载中...