首页 > 其他 > 详细

51nod1048

时间:2020-04-26 17:21:33      阅读:52      评论:0      收藏:0      [点我收藏+]

题意

51nod

做法一(暴力)

\(f_n\)\(n\)分解方案数

  • \(n~is~even\)
    \(f_n=f_{n-1}+f_{n/2}\)
  • \(n~is~odd\)
    \(f_n=f_{n-1}\)

做法二

考虑将\(n\)二进制分解,然后出现有效位分别为\(a_1,a_2,...,a_m\)
\(n\)分解后,定义最小表示法为升序排列
\(n\)的最小表示法,可以唯一地依次分段,和为\(2^{a_1},2^{a_2},2^{a_m}\)

\(f_{i,j}\)为处理完\(a_i\),最大数为\(2^j\)
\(g_{i,j}\)为处理\(2^i\),最大数为\(2^j\)

\[\begin{aligned}\&f_{1,j}=g_{a_1,j},g_{i,i}=1\&f_{i,j}=\sum\limits_{k=0}^j f_{i-1,k}\times g_{a_i-k,j-k}(i\neq 1)\&g_{i,j}=\sum\limits_{k=0}f_{i-1,k}\times f_{i-1-k,j-k}(j\neq i)\\end{aligned}\]

要写高精

51nod1048

原文:https://www.cnblogs.com/Grice/p/12780612.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!