比较神的构造,被对手 10min 秒了。
看到 74 和 outi≤2,然后就应该想到 74=20+21+2222,尝试将 n 划分为 3 个集合。感觉比较结论,所以直接说了。将 n 划分成 3 个无交且并为全集的集合 A,B,C,满足
∀a∈A,{∀u→a,u∈C}
∀b∈B,{∃u→b,u∈A},{∃u→b,u∈B}
∀c∈C,{∃u→c,u∈B}
分类讨论一下,不难发现 A,B,C 交且并为全集。由于 ∀b∈B,∃a→b,∣B∣≤2∣A∣,同理,∣B∣≤2∣C∣,即 4∣A∣≥2∣B∣≥∣C∣,∣C∣≤74n。删除 C 中的所有点后 A 的入度都是 0,B 的出度都是 0,故最多只有 a→b 的边,满足条件。
因为是 DAG,分集合时可以做拓扑排序。复杂度线性。
*2600
设 p=m1,q=1−p,则
ans=i=1∑n(in)ikpiqn−i
n 非常大,又有 ik,所以套路地考虑用斯特林数和下降幂表示幂。
ans=i=1∑n(in)ikpiqn−i=i=1∑n(in)piqn−ij=1∑k{jk}ij=i=1∑n(in)piqn−ij=1∑k{jk}(ji)j!=j=1∑k{jk}j!i=1∑n(in)(ji)piqn−i=j=1∑k{jk}(jn)j!i=j∑n(i−jn−j)piqn−i=j=1∑k{jk}(jn)j!i=0∑n−j(in−j)pi+jqn−i−j=j=1∑k{jk}(jn)j!pji=0∑n−j(in−j)piqn−i−j=j=1∑k{jk}(jn)j!pj(p+q)n−j=j=1∑k{jk}(jn)j!pj=j=1∑k{jk}njpj
预处理斯特林数后直接做,复杂度为 O(k2)。