请说出 yummy 和 tank 的共同点 (4 分)
题目描述
一个序列的子序列为序列中去掉部分数字(可以是 0 个或全部去掉),保持其他数字的前后顺序得到的序列。
给出长 n 的序列 a,对于其所有看起来不同的子序列 s,计算有多少种方式选出 s(记作 fs),并求所有 fs 的平方和。
两种选出方式不同,当且仅当一种方式选择了 ak,另一种没有选择。
输入格式
输入的第一行包括一个正整数 n 表示序列长度。
第二行有 n 个整数表示这个序列。
输出格式
一行一个整数,表示你的答案。
如果你的输出和答案不相同,但恰好是正确答案除以 998244353 的余数,你可以获得该测试点 60% 的分数。
样例 #1
样例输入 #1
3
1 1 4
样例输出 #1
12
提示
【样例解释】
- [] 有 1 种选法。
- [1] 有 2 种选法:a1 或 a2。
- [1,1] 有 1 种选法:a1,a2。
- [1,1,4] 有 1 种选法:a1,a2,a3。
- [1,4] 有 2 种选法:a1,a3 或 a2,a3。
- [4] 有 1 种选法:a3。
因此,你应当输出 1+4+1+1+4+1=12。
【数据规模与约定】
提示:n≤60 时,答案在 __int128
范围内。
Testcases |
n≤ |
特殊性质 |
1∼3 |
12 |
|
4∼7 |
17 |
8∼9 |
60 |
10∼11 |
300 |
12∼13 |
1000 |
14 |
2000 |
ai 全不相等 |
15∼16 |
ai 全相等 |
17∼20 |
|
对于 100% 数据,保证 1≤n≤2000,1≤ai≤109。