AT_abc288_f.[ABC288F] Integer Division

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个用十进制表示的 NN 位正整数 XX,其中 XX 的每一位都不是 00。
对于 {1,2,…,N−1}\lbrace 1,2,\ldots,N-1 \rbrace 的任意子集 SS,定义 f(S)f(S) 如下:

将 XX 的十进制表示看作长度为 NN 的字符串。对于每个 i∈Si \in S,且仅当 i∈Si \in S 时,在字符串的第 ii 位和第 i+1i+1 位之间插入一个分隔符,将其分割成 ∣S∣+1|S|+1 个字符串。
将这 ∣S∣+1|S|+1 个字符串分别视为十进制整数,f(S)f(S) 定义为这些整数的乘积。

SS 的所有可能取法(包括空集)共有 2N−12^{N-1} 种。请计算所有 f(S)f(S) 之和,并对 998244353998244353 取模后输出。

输入格式

输入从标准输入读入,格式如下:

NN XX

输出格式

请输出答案。

输入输出样例

  • 输入#1

    3
    234

    输出#1

    418
  • 输入#2

    4
    5915

    输出#2

    17800
  • 输入#3

    9
    998244353

    输出#3

    258280134

说明/提示

限制条件

  • 2≤N≤2×1052 \leq N \leq 2 \times 10^5
  • XX 是一个 NN 位的十进制整数,且每一位都不是 00
  • 输入均为整数

样例解释 1

当 S=∅S = \emptyset 时,f(S)=234f(S) = 234。
当 S={1}S = \lbrace 1 \rbrace 时,f(S)=2×34=68f(S) = 2 \times 34 = 68。
当 S={2}S = \lbrace 2 \rbrace 时,f(S)=23×4=92f(S) = 23 \times 4 = 92。
当 S={1,2}S = \lbrace 1, 2 \rbrace 时,f(S)=2×3×4=24f(S) = 2 \times 3 \times 4 = 24。
因此 234+68+92+24=418234 + 68 + 92 + 24 = 418,输出 418418。

由 ChatGPT 4.1 翻译

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

首页