AT_arc175_a.[ARC175A] Spoon Taking Problem

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

有 NN 个人围坐在圆桌旁,每个人按逆时针方向依次编号为 1, 2, …, N1,\ 2,\ \ldots,\ N。每个人都有一只惯用手,可能是左手或右手。

圆桌上有 NN 把编号为 1, 2, …, N1,\ 2,\ \ldots,\ N 的勺子,每两个人之间放有一把勺子。对于每个 1≤i≤N1 \leq i \leq N,第 ii 个人的左侧有勺子 ii,右侧有勺子 (i+1)(i+1)。这里,勺子 (N+1)(N+1) 指的是勺子 11。

下图展示了 N=4N=4 时的示意图。

给定一个 (1, …, N)(1,\ \dots,\ N) 的排列 (P1, …, PN)(P_1,\ \dots,\ P_N)。按照 i=1,…,Ni=1,\dots,N 的顺序,第 PiP_i 个人依次进行如下操作:

  • 如果自己左侧或右侧还有勺子,则从中取走一把。
    • 如果自己两侧的勺子都还在,则取走与自己惯用手相同侧的勺子。
  • 否则什么也不做。

给定一个由 L、R、? 组成的长度为 NN 的字符串 SS。NN 个人的惯用手组合共有 2N2^N 种可能,请你计算其中满足以下所有条件的组合数,并对 998244353998244353 取模:

  • 如果 SS 的第 ii 个字符为 L,则第 ii 个人必须是左撇子。
  • 如果 SS 的第 ii 个字符为 R,则第 ii 个人必须是右撇子。
  • 所有人操作结束后,每个人都拿到了一把勺子。

输入格式

输入通过标准输入给出,格式如下:

N P1 P2 … PN SN\ P_1\ P_2\ \dots\ P_N\ S

输出格式

输出一个整数,表示满足条件的惯用手组合数,对 998244353998244353 取模。

输入输出样例

  • 输入#1

    3
    1 2 3
    L??

    输出#1

    2
  • 输入#2

    3
    1 3 2
    R?L

    输出#2

    0
  • 输入#3

    12
    6 2 9 3 1 4 11 5 12 10 7 8
    ????????????

    输出#3

    160

说明/提示

限制

  • 输入的所有数值均为整数。
  • 2≤N≤2×1052 \leq N \leq 2 \times 10^5
  • (P1,…,PN)(P_1,\dots,P_N) 是 (1,…,N)(1,\dots,N) 的一个排列。
  • SS 是由 L、R、? 组成的长度为 NN 的字符串。

样例解释 1

当第 1,2,31,2,3 个人分别为左撇子、左撇子、右撇子时,操作如下:

  • 第 11 个人开始操作。两侧的勺子都还在,因此取走左侧(与惯用手相同侧)的勺子 11。
  • 第 22 个人开始操作。两侧的勺子都还在,因此取走左侧的勺子 22。
  • 第 33 个人开始操作。右侧的勺子已经没有了,左侧的勺子 33 还在,因此取走勺子 33。

所有人操作结束后,每个人都拿到了一把勺子。这个惯用手组合是满足条件的。除此之外,第 1,2,31,2,3 个人都为左撇子的组合也满足条件。

样例解释 2

不存在满足条件的惯用手组合。

由 ChatGPT 4.1 翻译

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

首页