SDUT 校赛题目

Description

给定正整数 $n$,计算 $n$ 个元素的集合 ${1,2,\cdots,n}$,所有非空子集和的乘积取模 $998 , 244 , 353$ 后的结果。

Input

一个正整数 $n$ $(1\le n\le200)$,代表集合大小。

例如 $3$ 个元素的集合有 $7$ 个非空子集,分别为 ${1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}$,对子集内元素求和再乘积的结果就是

$1\times2\times3\times(1+2)\times(1+3)\times(2+3)\times(1+2+3)=2160$

分析:本题关键在于我们不可能枚举所有子集,但我们考虑每个子集的贡献被限定在固定值域[l,r],而值域不是很大,我们枚举x,l<=x<=r,看有多少个子集能够和为x,问题转化成背包求方案数。