UVA580 危险的组合 Critical Mass
2021/10/1 23:12:26
本文主要是介绍UVA580 危险的组合 Critical Mass,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
DP做法:转移的时候只要考虑最后有几个连续的铀盒或者是否已经满足条件。
所以用 $dp_{i,j}$ 表示有考虑了前 $i$ 个盒子,最后有 $j$ 个连续铀盒的方案数。特殊地,当 $j = m$ 时表示前 $i$ 个盒子已经有了连续 $m$ 个铀盒的方案数,其中 $m$ 为需要的连续铀盒数,题目中, $m = 3$。
转移方程:$\begin{cases} dp_{0,0}=1 \\ dp_{i,0} = \sum ^{m-1} _{j = 0} dp_{i-1,j} \\ dp_{i,j} = dp_{i-1,j-1} \\ dp_{i,m} = 2dp_{i-1,m} + dp_{i-1,m-1}\end{cases}$
时间复杂度 $O(nm)$
不难发现 $dp_{i,j}=dp_{i-j,0}$ ,则 $
\begin{cases} dp_{0,0} = dp_{1,0} = 1 \\ dp_{i,0} = 2dp_{i-1,0}-dp_{i-m-1,0} \\ dp_{i,m} = 2dp_{i-1,m} + dp_{i-m,0}\end{cases}$
时间复杂度 $O(n)$
递推做法,$f(n) = 2^{n-3} + \sum ^{n-3}_{i=0} 2^{n-i-3}f(i)$
这篇关于UVA580 危险的组合 Critical Mass的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享