题目链接:https://dwacon5th-prelims.contest.atcoder.jp/tasks/dwacon5th_prelims_e

题目描述:

给定一个大小为\(N\)的数组\(A\),记\(f(p)\)为排列\(p\)的所有环的中的最小值的乘积。记\(b_i\)为所有形成了\(i\)个环的排列的\(f(p)\)的和。求\(b_1, b_2, ..., b_N\)的\(GCD\)模\(998244353\).

解题报告:

先将数组排序,然后想到一个和第一类斯特林数DP很类似的一个DP:

\[DP[i][j] = DP[i - 1][j - 1] * a_i + DP[i - 1][j] * i
\]

答案即为\(GCD_{i=1}^N DP[N][i]\)

记多项式\(P_i(t)\)为\(\sum_{j=1}^i DP[i][j] \cdot t^j\)

DP方程可以改写成以下形式:

\(P_i(t) = P_{i-1}(t) * (a_i * t + i)\)

\(P_N(t) = \prod_{i=1}^N (a_i * t + i)\)

引理:
记c(P)为多项式P所有系数的GCD。有c(PQ)=c(P)c(Q)。

根据以上引理,有:\(c(P_N(t)) = \prod_{i=1}^N \gcd(a_i, i)\)

最新文章

  1. Linux服务器,PHP的10大安全配置实践
  2. java 平台 权限管理
  3. 简单的angular表单验证指令
  4. Swift中的Optional类型 (可选类型)与强制解包 ? !
  5. TCP协议三次握手过程分析【图解,简单清晰】
  6. scala学习笔记:无参函数
  7. 调用API函数,在窗口非客户区绘图(通过GetWindowDC获得整个窗口的DC,就可以随意作画了)
  8. Mysql入门到精通数据表的操作
  9. C#Redis列表List
  10. PHP数据访问增删查(20161028)
  11. OpenCL异构计算资料收集
  12. PowerBi利用Python Script绕过ODBC来导入MongoDB数据
  13. data.table包使用应该注意的一些细节
  14. 【NPOI】通过NPOI从内存流中创建EXCEL
  15. Bootstrap常用单词组
  16. js外部调用layui.use中的函数的写法
  17. Linux 安装 java
  18. alpha冲刺(7/10)
  19. Mentor面向智能家居的IoT方案
  20. dj django与ajax交互

热门文章

  1. python基础知识0-3
  2. Leaf Sets CodeForces - 1042F (树,最小划分)
  3. C#文本_文件夹操作
  4. LeetCode 腾讯精选50题--数组中的第K个最大元素
  5. Oracle学习笔记:一个简单的行转列例子
  6. css3常用样式
  7. DataSnap跨域
  8. 第八章· MySQL日志管理
  9. Linux下源码编译安装MySql,centeros7
  10. js常用阻止冒泡事件