CF2116B.Gellyfish and Baby's Breath

普及-

通过率:0%

AC君温馨提醒

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

题目描述

Flower 给了 Gellyfish 两个 [0,1,…,n−1][0, 1, \ldots, n-1] 的排列 p0,p1,…,pn−1p_0, p_1, \ldots, p_{n-1} 和 q0,q1,…,qn−1q_0, q_1, \ldots, q_{n-1}。

现在 Gellyfish 想通过以下方法计算一个数组 r0,r1,…,rn−1r_0, r_1, \ldots, r_{n-1}:

  • 对于所有 ii(0≤i≤n−10 \leq i \leq n-1),有 ri=max⁡j=0i(2pj+2qi−j)r_i = \max\limits_{j=0}^{i} \left(2^{p_j} + 2^{q_{i-j}} \right)。

但由于 Gellyfish 很懒,你需要帮她计算出数组 rr 的所有元素。

由于 rr 的元素可能非常大,你只需要输出 rr 的每个元素对 998 244 353998\,244\,353 取模后的结果。

∗^{\text{∗}} 如果数组 bb 由数组 aa 的元素任意排列组成,则称 bb 是 aa 的一个排列。例如,[4,2,3,4][4,2,3,4] 是 [3,2,4,4][3,2,4,4] 的一个排列,而 [1,2,2][1,2,2] 不是 [1,2,3][1,2,3] 的排列。

输入格式

每组测试包含多个测试用例。第一行包含测试用例数 tt(1≤t≤1041 \leq t \leq 10^4)。每个测试用例的描述如下:

第一行包含一个整数 nn(1≤n≤1051 \leq n \leq 10^5)。

第二行包含 nn 个整数 p0,p1,…,pn−1p_0, p_1, \ldots, p_{n-1}(0≤pi<n0 \leq p_i < n)。

第三行包含 nn 个整数 q0,q1,…,qn−1q_0, q_1, \ldots, q_{n-1}(0≤qi<n0 \leq q_i < n)。

保证 pp 和 qq 都是 [0,1,…,n−1][0, 1, \ldots, n-1] 的排列。

保证所有测试用例中 nn 的总和不超过 10510^5。

输出格式

对于每个测试用例,输出 nn 个整数 r0,r1,…,rn−1r_0, r_1, \ldots, r_{n-1},每个数对 998 244 353998\,244\,353 取模,输出在一行内。

输入输出样例

  • 输入#1

    3
    3
    0 2 1
    1 2 0
    5
    0 1 2 3 4
    4 3 2 1 0
    10
    5 8 9 3 4 0 2 7 1 6
    9 5 1 4 0 3 2 8 7 6

    输出#1

    3 6 8 
    17 18 20 24 32 
    544 768 1024 544 528 528 516 640 516 768

说明/提示

在第一个测试用例中:

  • r0=2p0+2q0=1+2=3r_0 = 2^{p_0} + 2^{q_0} = 1+2=3
  • r1=max⁡(2p0+2q1,2p1+2q0)=max⁡(1+4,4+2)=6r_1 = \max(2^{p_0} + 2^{q_1}, 2^{p_1} + 2^{q_0}) = \max(1+4, 4+2) = 6
  • r2=max⁡(2p0+2q2,2p1+2q1,2p2+2q0)=(1+1,4+4,2+2)=8r_2 = \max(2^{p_0} + 2^{q_2}, 2^{p_1}+2^{q_1}, 2^{p_2}+2^{q_0}) = (1+1, 4+4, 2+2) = 8

由 ChatGPT 4.1 翻译

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

首页