A96796.颜色配对
普及+/提高
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
有 n 种不同颜色的球,第 i 种颜色有 ai 个。
这些球可以被分成若干组。每组最多包含 2 个球,并且每组中每种颜色的球最多只能出现 1 个(也就是说:两球一组时必须是两种不同颜色)。
考虑所有 2n 种颜色集合。对某个颜色集合,只使用集合内这些颜色的球,把它们分组所需的最少组数定义为这个集合的值。
你的任务是计算所有 2n 个颜色集合的值之和。由于答案可能很大,请输出对 998244353 取模的结果。
输入格式
第一行包含一个整数 n,满足 1≤n≤5000。
第二行包含 n 个整数 a1,a2,…,an,满足 1≤ai≤5000。
额外保证:∑i=1nai≤5000。
输出格式
输出一个整数,表示所有 2n 种颜色集合的值之和对 998244353 取模的结果。
输入输出样例
输入#1
3 1 1 2
输出#1
11
输入#2
1 5
输出#2
5
输入#3
4 1 3 3 7
输出#3
76
说明/提示
样例解释
样例 #1
输入:n=3,a=[1,1,2]。共有 23=8 个颜色集合(把第 i 种颜色是否选入当作开关):
- 空集:没有球,值为 0
- {1}:只有 1 个球,最少 1 组,值为 1
- {2}:只有 1 个球,最少 1 组,值为 1
- {3}:只有 2 个同色球,不能放同一组,只能分成 2 组,值为 2
- {1,2}:两种颜色各 1 个,可以两球一组,最少 1 组,值为 1
- {1,3}:共有 3 个球,其中最大单色数量为 2,最少组数为 max(2,⌈3/2⌉)=2,值为 2
- {2,3}:同理,值为 2
- {1,2,3}:共有 4 个球,最大单色数量为 2,最少组数为 max(2,⌈4/2⌉)=2,值为 2
总和为 0+1+1+2+1+2+2+2=11。
样例 #2
输入:n=1,a=[5]。
只有两个颜色集合:空集值为 0,{1} 有 5 个同色球,必须分成 5 组,和值为 5。
样例 #3
输入:n=4,a=[1,3,3,7]。
对任意选择的颜色集合,设总球数为 T,其中最大单色数量为 M,则最少组数为 max(M,⌈T/2⌉)。把所有 24 个集合的这个值加起来,得到输出 76。