AT_arc189_a.[ARC189A] Reversi 2

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

在一个由 NN 个格子组成的棋盘上,每个格子从 11 到 NN 进行编号。

起初,第 ii 个格子上写有 i mod 2i \bmod 2 的数字。你可以进行以下操作若干次(可以是零次):

  • 选择两个满足条件的格子 ll 和 rr(要求 l+1<rl + 1 < r),将中间格子 l+1,l+2,…,r−1l + 1, l + 2, \dots, r - 1 上的数字全部改为格子 ll 上的数字。
    • 条件是格子 ll 和格子 rr 上的数字相同。
    • 并且中间的每个格子 ii (l<i<rl < i < r)上的数字要与格子 ll 上的不同。

计算最后能使每个格子 ii 上的数字为 AiA_i 的操作序列数量,并对结果取 998244353998244353 的余数。

注:若两个操作序列满足以下任一条件即视作不同:长度不同,或者存在一个正整数 tt,使得操作中第 tt 次选择的 (l,r)(l, r) 组合不同。

输入格式

从标准输入读入以下格式的数据:

NN A1A_1 A2A_2 …\dots ANA_N

输出格式

输出计算结果。

输入输出样例

  • 输入#1

    6
    1 1 1 1 1 0

    输出#1

    3
  • 输入#2

    10
    1 1 1 1 1 0 1 1 1 0

    输出#2

    9

说明/提示

  • 1≤N≤2×1051 \le N \le 2 \times 10^5
  • 0≤Ai≤10 \le A_i \le 1

样例解释 1

为了使格子 i(1≤i≤N)i(1 \le i \le N) 上的数字变为 AiA_i,可以按照以下步骤进行操作(这里用数列 X=(X1,X2,…,XN)X = (X_1, X_2, \dots, X_N) 表示格子的状态):

  • 初始状态:X=(1,0,1,0,1,0)X = (1, 0, 1, 0, 1, 0)。
  • 选择格子 22 和 44,之后状态变为 X=(1,0,0,0,1,0)X = (1, 0, 0, 0, 1, 0)。
  • 选择格子 11 和 55,最终状态为 X=(1,1,1,1,1,0)X = (1, 1, 1, 1, 1, 0)。

除了上述方法外,还有另外两种操作方法可以实现每个格子 ii 上的数字变为 AiA_i,因此答案是 33。

本翻译由 AI 自动生成

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

首页