Sum of Averages (subset)

2 secs 1024 MB
yunipoke's icon yunipoke

AAの各要素が答えにどれだけ寄与するかを考えます。AAのある要素AiA_ik=1,2,,Nk = 1,2,\cdots,Nについて、AiA_iが大きさkkの部分集合に含まれる方法の数はAiA_i以外のN1N - 1要素の中から異なるk1k-1要素をとってくる方法の数に等しく、(N1k1)\binom {N-1}{k-1}通りです。したがってAiA_iの答えに対する寄与はAik=1N(N1k1)kA_i \sum_{k = 1}^N \frac{\binom {N-1}{k-1}}{k}となります。 ここで、(N1k1)k=(N1)!(Nk)!k!=N!(Nk)!k!N=(Nk)N\frac{\binom {N-1}{k-1}}{k} = \frac{(N- 1)!}{(N-k)!k!} = \frac{N!}{(N-k)!k!N} = \frac{\binom{N}{k}}{N}なので、 k=1N(N1k1)k=k=1N(Nk)N=1N((1+1)N(N0))=2N1N\sum_{k = 1}^N\frac{\binom {N-1}{k-1}}{k} = \sum_{k = 1}^N\frac{\binom{N}{k}}{N} = \frac{1}{N}((1 + 1)^N - \binom{N}{0}) = \frac{2^N-1}{N}が成り立ちます。したがって答えは2N1Ni=1NAi\frac{2^N-1}{N}\sum_{i = 1}^N A_i と求まります。よってmod=998244353mod = 998244353としてこの問題を時間計算量O(N+logmod)O(N + \log mod)で解くことができました。