C. 反套路、反直觉和反坦克装甲炮

    Type: Default 3500ms 512MiB

反套路、反直觉和反坦克装甲炮

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

请说出 yummy 和 tank 的共同点 (4 分)

题目描述

一个序列的子序列为序列中去掉部分数字(可以是 00 个或全部去掉),保持其他数字的前后顺序得到的序列。

给出长 nn 的序列 aa,对于其所有看起来不同的子序列 ss,计算有多少种方式选出 ss(记作 fsf_s),并求所有 fsf_s 的平方和。

两种选出方式不同,当且仅当一种方式选择了 aka_k,另一种没有选择。

输入格式

输入的第一行包括一个正整数 nn 表示序列长度。

第二行有 nn 个整数表示这个序列。

输出格式

一行一个整数,表示你的答案。

如果你的输出和答案不相同,但恰好是正确答案除以 998244353998244353 的余数,你可以获得该测试点 60%60\% 的分数。

样例 #1

样例输入 #1

3
1 1 4

样例输出 #1

12

提示

【样例解释】

  • [][]11 种选法。
  • [1][1]22 种选法:a1a_1a2a_2
  • [1,1][1,1]11 种选法:a1,a2a_1,a_2
  • [1,1,4][1,1,4]11 种选法:a1,a2,a3a_1,a_2,a_3
  • [1,4][1,4]22 种选法:a1,a3a_1,a_3a2,a3a_2,a_3
  • [4][4]11 种选法:a3a_3

因此,你应当输出 1+4+1+1+4+1=121+4+1+1+4+1=12

【数据规模与约定】

提示:n60n\le 60 时,答案在 __int128 范围内。

Testcases nn\le 特殊性质
131\sim 3 1212
474\sim 7 1717
898\sim 9 6060
101110\sim 11 300300
121312\sim 13 10001000
1414 20002000 aia_i 全不相等
151615\sim 16 aia_i 全相等
172017\sim 20

对于 100%100\% 数据,保证 1n20001\le n\le 20001ai1091\le a_i\le 10^9