繁繁的数字 背包DP
2024-10-21 11:58:34
繁繁的数字 背包DP
问一个数\(n\)有多少种二进制分解方案数
\(n\le 10^5\)
如7有7=4+2+1=4+1+1+1=2+2+2+1=2+2+1+1+1=2+1+1+1+1+1=1+1+1+1+1+1+1,共6种方案
一眼完全背包,将\(2^0,2^1\cdots\)等看成\(log_n\)个物品,每个物品无限件,背包体积为\(n\)。然后求方案数套个计数DP即可。
其他机房大佬都是找规律找出来的……
#include <cstdio>
#define MAXN 1000010
#define MOD 1000000007
#define ll long long
using namespace std;
int n;
ll f[MAXN];
int main()
{
//freopen("number.in","r",stdin);
//freopen("number.out","w",stdout);
scanf("%d", &n);
f[0]=1;
int tmp=0;
for(int i=0;tmp=(1<<i),tmp<=n;++i){
for(int j=0;j<=n;++j)
if(j>=tmp)
f[j]=(f[j]+f[j-tmp])%MOD;
}
printf("%lld", f[n]);
return 0;
}
最新文章
- Java多线程--线程安全问题的相关研究
- 用Python的xlrd模块处理时间单元格
- Mark Down 尝试
- 动态规划(DP)
- Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable
- mybaits注解
- PPTP VPN 一键安装包(图文,OpenVZ适用)[zz]
- 重启猫(modem)的方法
- Hadoop学习(3)-- 安装1.x版本
- 32+激发灵感的HTML5/CSS3网页设计教程
- 9款完美体验的HTML5/jQuery应用
- linux crontab 命令
- ACE 6.2.0 win7_64 编译
- watchdog(IWDG)
- Android startActivity原理分析(基于Android 8.1 AOSP)
- 【原创项目】GC Server 更新
- centos 后台挂起运行python
- 利用java8对设计模式的重构
- TOJ 2778 数据结构练习题――分油问题(广搜和哈希)
- EGOCache缓存框架详细讲解
热门文章
- wait(),notify(),notifyAll()必须加锁的原因
- Synchronized 与Lock的不同之处
- How to read request body in a asp.net core webapi controller?
- VS 引用dll版本冲突问题
- 浅谈对BFC的认识,以及用bfc解决浮动问题
- Matlab相关函数使用
- iOS加解密最重要的干货:CCCrypt
- Python2 和 pip2 存在, Python3 也存在,但是 pip3 不存在的解决办法
- python02---基础数据类型
- MySQL Backup--Xtrabackup备份设置锁等待问题