题意:一个n可以拆成 2的幂的和有多少种

思路:先看实例

1   1

2    1+1     2

3     1+1+1  1+2

4      1+1+1+1  1+1+2  2+2  4

5     1+1+1+1+1  1+ 1+1+2  1+2+2  1+4

  1. 对于奇数:相当于前面一个偶数的每一种情况的开头+1 dp[i]=dp[i-1]
  2. 对于偶数   分两种情况 开头是1的  相当于 dp[i-1]   开头没有1的 相当于 dp[i/2]的情况

解决问题的代码:

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int dp[];
int main()
{
int n;
dp[] = ;
scanf("%d", &n);
for (int i = ; i <= n; i++)
{
if (i % == ) dp[i] = dp[i - ];
else dp[i] = (dp[i - ] + dp[i / ])% ;
}
printf("%d\n", dp[n]);
return ;
}

最新文章

  1. ros::spin() 和 ros::spinOnce() 区别及详解
  2. 禁止从别的应用启动Activity
  3. mybatis多表连接在一起查询
  4. java获取短uuid
  5. iOS 展示二级页面
  6. libevent源码深度剖析
  7. JS 变量或参数是否有值的判断
  8. 新增html元素的使用
  9. 【BZOJ 1015】[JSOI2008]星球大战starwar
  10. 将CString(unicode)转换为char*(ANSI)
  11. hdu1540-Tunnel Warfare (线段树区间合并)
  12. javascript动画效果之多物体透明度
  13. 【TensorFlow使用教程】1 环境搭建
  14. Python语言——Python语言概述
  15. ECharts JS应用:图表页面实现
  16. c++中运算符重载
  17. codeforces 1B Spreadsheets
  18. phpstudy安装redis
  19. 关于MFLAGS与MAKEFLAGS
  20. C语言程序设计I—第一周教学

热门文章

  1. 线段树 &amp; 题目
  2. CUBE 隐藏维度中的Unknown
  3. js获取ISO8601规范时间
  4. nginx错误Upstream timed out
  5. Generator 和 函数异步应用 笔记
  6. Docker的下载安装以及简单使用
  7. Docker学习资料汇总
  8. python3发送邮件01(简单例子,不带附件)
  9. Bot Framework:Activity类简明指南
  10. UWP开发:应用文件存储