AT_abc370_e.[ABC370E] Avoid K Partition

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

给出长度为 NN 的序列 A=(A1,A2,…,AN)A=(A_1,A_2,\dots,A_N) 以及一个整数 KK。

存在 2N−12^{N-1} 种方法将 AA 分成若干个连续子区间。有多少划分方法满足没有任何一个划分出的子区间元素和为 KK?请输出这个值模 998244353998244353 的结果。

这里,“将 AA 分成若干个连续子区间”的含义如下:

  • 随意选择一个整数 k 1≤k≤Nk\space 1\le k\le N 作为序列长度,并且随意选择一个满足条件 1=i1<i2<⋯<ik<ik+1=N+11=i_1<i_2<\dots<i_k<i_{k+1}=N+1 的整数序列 (i1,i2,…,ik,ik+1)(i_1,i_2,\dots,i_k,i_{k+1})。
  • 对于每个满足 1≤n≤k1\le n\le k 的整数 nn,第 nn 个被划分出来的子区间是由提取序列 AA 中的第 ini_n 到第 (in+1−1)(i_{n+1}-1) 个元素得到的。

举个例子,以下是序列 A=(1,2,3,4,5)A=(1,2,3,4,5) 的若干可行划分方案:

  • (1,2,3),(4),(5)(1,2,3),(4),(5)
  • (1,2),(3,4,5)(1,2),(3,4,5)
  • (1,2,3,4,5)(1,2,3,4,5)

输入格式

从标准输入输出流输入,格式如下:

$ N \space K $

$ A_1 \space A_2 \space \dots \space A_N $

输出格式

请输出答案模 998244353998244353 的结果。

输入输出样例

  • 输入#1

    3 3
    1 2 3

    输出#1

    2
  • 输入#2

    5 0
    0 0 0 0 0

    输出#2

    0
  • 输入#3

    10 5
    -5 -1 -7 6 -6 -2 -5 10 2 -10

    输出#3

    428

说明/提示

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • −1015≤K≤1015-10^{15} \leq K \leq 10^{15}
  • −109≤Ai≤109-10^9 \leq A_i \leq 10^9
  • 全部输入为整数

对样例 1 的解释

以下是符合题目要求的 22 种划分方案。

  • (1),(2,3)(1),(2,3)
  • (1,2,3)(1,2,3)

Author: Redshift_Shine

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

首页