CF1984C2.Magnitude (Hard Version)
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
注意: 本题的两个版本题意是有不同的,你可能需要同时阅读两个版本的题意。
给定一个长度为 n 的数组 a。初始有 c=0;接下来,对每个在 1 到 n 范围内的 i(按递增的顺序) ,要执行以下两种操作中的恰好一种:
-
操作 1:将 c 修改为 c+ai。
-
操作 2:将 c 修改为 ∣c+ai∣,这里 ∣x∣ 表示 x 的绝对值。
令所有操作后 c 能取得的最大值为 k,你需要求出有多少种本质不同的方案使得 c=k。这里两个方案被视为不同,当且仅当存在一个 i 使得其中一个方案选了操作 1 而另一个选了操作 2,即便这步操作后两个方案对应的 c 相等。
由于答案可能很大,请输出答案对 998244353 取模后的结果。
输入格式
第一行为一个正整数 t(1≤t≤104),表示测试数据的组数。
接下来的每组测试数据,第一行为一个正整数 n(1≤n≤2⋅105),
第二行为 n 个整数 a1,a2,⋯,an(−109≤ai≤109)。
输出格式
对每组测试数据,输出一个整数,表示本质不同的方案数对 998244353 取模的结果。
保证所有测试数据的 n 之和不超过 3⋅105。
输入输出样例
输入#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测评打分。不知道怎么写?