CF1984C2.Magnitude (Hard Version)

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

注意: 本题的两个版本题意是有不同的,你可能需要同时阅读两个版本的题意。

给定一个长度为 nn 的数组 aa。初始有 c=0c=0;接下来,对每个在 11 到 nn 范围内的 ii(按递增的顺序) ,要执行以下两种操作中的恰好一种:

  • 操作 11:将 cc 修改为 c+aic+a_i。

  • 操作 22:将 cc 修改为 ∣c+ai∣|c+a_i|,这里 ∣x∣|x| 表示 xx 的绝对值。

令所有操作后 cc 能取得的最大值为 kk,你需要求出有多少种本质不同的方案使得 c=kc=k。这里两个方案被视为不同,当且仅当存在一个 ii 使得其中一个方案选了操作 11 而另一个选了操作 22,即便这步操作后两个方案对应的 cc 相等。

由于答案可能很大,请输出答案对 998244353998244353 取模后的结果。

输入格式

第一行为一个正整数 t  (1≤t≤104)t\;(1\leq t\leq 10^4),表示测试数据的组数。

接下来的每组测试数据,第一行为一个正整数 n  (1≤n≤2⋅105)n\;(1\leq n\leq 2\cdot10^5),

第二行为 nn 个整数 a1,a2,⋯ ,an  (−109≤ai≤109)a_1,a_2,\cdots,a_n\;(-10^9\leq a_i\leq 10^9)。

输出格式

对每组测试数据,输出一个整数,表示本质不同的方案数对 998244353998244353 取模的结果。

保证所有测试数据的 nn 之和不超过 3⋅1053\cdot10^5。

输入输出样例

  • 输入#1

    5
    4
    2 -5 3 -3
    8
    1 4 3 4 1 4 3 4
    3
    -1 -2 -3
    4
    -1000000000 1000000000 1000000000 1000000000
    4
    1 9 8 4

    输出#1

    12
    256
    1
    8
    16

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

首页