构造,递推,因为划分是合并的逆过程,考虑怎么合并。

先把N展开成全部为N个1
然后合并,因为和顺序无关,所以只和出现次数有关
情况有点多并且为了避免重复,分类,C[i]表示序列中最大的数为2^i时的方案数

树形表示合并 (UVA 10562 Undraw the Trees的表示方法。。。
7          (2^0) (7表示2^0出现的次数)
_ _ _
|  |  |
1 2 3    (2^1) (7个1可以合并成1~3个2)

_ _
   |  |
   1 1         (2^2) (继续合并)
这棵树是分形的,子树的形态由根结点的值决定。

f[n]表示方案
当n是偶数,第一层会增加一颗子树 其值为 n/2, f[n] = f[n-1]+f[n/2]

当n是奇数,树的形态不变 ,f[n] = f[n-1]

#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<queue>
#include<vector>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<algorithm>
using namespace std;const int mod = 1e9, maxn = 1e6+1;
int dp[maxn];//#define LOCAL
int main()
{
#ifdef LOCALfreopen("in.txt","r",stdin);
#endifint n; cin>>n;dp[1] = 1;for(int i = 2; i <= n ; i++) {dp[i] = dp[i-1] + (i&1?0:dp[i>>1]);if(dp[i]>=mod) dp[i] -= mod;}cout<<dp[n]<<endl;return 0;
}

转载于:https://www.cnblogs.com/jerryRey/p/4887229.html

POJ 2229 Sumsets(递推,找规律)相关推荐

  1. MT【103】二阶递推找规律

    评:如果直接找$a_n$的二阶递推式:$a_{n+2}-2\sqrt{2}a_{n+1}-a_n=0$有根号,不利于估计尾数. 转载于:https://www.cnblogs.com/mathstud ...

  2. *【HDU - 1517】【POJ - 2505】A Multiplication Game(博弈,递推找规律或SG函数)

    题干: Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers ...

  3. Codeforces 1327 E. Count The Blocks(递推找规律)

    题意: 给出一个 n n n,求 1 0 n 10^n 10n 内长度为 1 1 1到 n n n的块分别有多少个.块的含义是连续相同数字的长度. 第一眼以为数位 d p dp dp 暴力打表出前几项 ...

  4. 牛客网 水题 递推找规律

    链接: https://www.nowcoder.com/acm/contest/91/E 来源:牛客网 小Y买了很多苹果,但他很贪吃,过了几天一下就吃剩一只了.每一天小Y会数出自己的苹果个数X,如果 ...

  5. poj 1283(递推ordp)

    题意:有n台电脑要有k辆卡车去运,每台卡车不能为空,问有多少种运输方案,注:假设有7台电脑,3辆卡车,1,1,5和1,5,1和5,1,1被视为同一种. 解题思路:递推思想,dp[i][j]表示i辆卡车 ...

  6. hdu2709 Sumsets 递推

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2709 感觉很经典的一道递推题 自己想了有半天的时间了....比较弱.... 思路: 设f[n]表示和为 ...

  7. POJ 2229 Sumsets

    题目链接 题意 给定一个数字,问用2的次方数凑,一共有几种情况 例如7: 1) 1+1+1+1+1+1+1 2) 1+1+1+1+1+2 3) 1+1+1+2+2 4) 1+1+1+4 5) 1+2+ ...

  8. poj 2229 Sumsets(类似于n的m划分)

    传送门 •题意 将一个数N分解为2的幂之和共有几种分法? •题解 定义dp[ i ]为 i 的分解方案数. 初始化dp[0] = 20 = 1; 状态转移方程为: for i : 1 to N 若 i ...

  9. [线性代数学习笔记] 线性递推数列及 Berlekamp-Massey 算法的详细推导过程

    线性递推数列 线性递推 对于无限数列 {a0,a1,...}\{a_0,a_1,...\}{a0​,a1​,...} 和有限非空数列 {r0,r1,...,rm−1}\{r_{0},r_1,...,r ...

最新文章

  1. 实用技能 | OpenCV算法程序导出 DLL与调用演示
  2. IPsec在企业网中的应用
  3. java 之 运算符
  4. 汉字的理据与造字取向
  5. 汽车自动泊车APA简介
  6. docker中部署hadoop、zookeeper、hbase伪分布式并上传到阿里云远程仓库
  7. 21行代码AC——HDU1106 排序
  8. SAP Spartacus B2B页面的6个tile,url是维护在什么地方的?
  9. spring容器扩展功能之一:spring加载ApplicationContext.xml的四种方式
  10. 装修相片(第50天拍,全部,25号更新)
  11. Redhat 6.8部署oracle 12c
  12. spring-boot (9)---STS 新建一个spring-boot rest 项目
  13. 数据结构与算法的时间空间复杂度
  14. Linux下C++的多线程编程
  15. kali下java,kali java安装
  16. matlab 给图像双三次,图像灰度的双三次插值的MATLAB实现
  17. us、ms、s 单位转换,不会的都是大傻子!!!
  18. python 正则表达式 前瞻_【正则表达式】前瞻,后顾,负前瞻,负后顾
  19. 360浏览器网页按钮点击无效
  20. 如何使用Sketch绘制半个圆角矩形

热门文章

  1. Python获取Redis所有Key以及内容
  2. 榛子云短信-微信小程序60秒倒计时插件
  3. Eclipse 启动项目错误:class not found
  4. VMWare 虚拟机工作站 + Ubuntu操作系统安装
  5. list,set,map,数组之间的相互转换详细解析
  6. I.MX6 android 获取framebuffer信息
  7. 这样就算会了PHP么?-7
  8. Android SystemClock 应用
  9. Linux下编程获取本地IP地址的常见方法
  10. 获取响应里面的cookie的方法