D. 子集和(sum)

    传统题 文件IO:sum 1000ms 256MiB

子集和(sum)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

【题目描述】

给你一个由 nn 个整数构成的可重复集合 T={a1an}T=\{a_1\sim a_n\},假设 SS 为该集合的一个子集 {b1bk}\{b_1\sim b_k\},则 f(S)=(b1+b2++bk)2f(S)=(b_1+b_2+\cdots+b_k)^2
假设 g(i)g(i) 表示所有元素个数为 ii 的子集的 ff 值之和,即 g(i)=ST 且 S=if(S)g(i)=\sum_{S\subseteq T\ 且\ |S|=i}f(S)。 分别求出 g(1)g(n)g(1)\sim g(n)的值(输出答案对 109+710^9+7 取模的结果)。

【输入格式】

从文件sum.in中读入数据。

  • 第一行一个整数 nn
  • 第二行 nn 个整数 a1ana_1\sim a_n

【输出格式】

输出到文件sum.out中。

  • 一行 nn 个数,表示 g(1)g(n)g(1)\sim g(n)

【输入样例 1】

5
1 2 3 4 5

【输出样例 1】

55 390 840 730 225

【输入输出样例 2】

sum2.insum2.ans

【数据范围与约定】

  • 对于测试点 141\sim 41n20,0ai1091\le n\le 20,0\le a_i \le 10^9
  • 对于测试点 565\sim 61n3000,ai=11\le n \le 3000,a_i=1
  • 对于测试点 787\sim 81n3000,0ai11\le n \le 3000,0\le a_i \le 1
  • 对于测试点 9209\sim 201n3000,0ai1091\le n \le 3000,0\le a_i \le 10^9

CSP-JS模拟赛4

未参加
状态
已结束
规则
OI
题目
4
开始于
2025-9-30 18:30
结束于
2025-10-4 0:00
持续时间
3.5 小时
主持人
参赛人数
14