51Nod-1383 整数分解为2的幂【数列】
1383 整数分解为2的幂
任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量!由于方案数量较大,输出Mod 1000000007的结果。
比如N = 7时,共有6种划分方法。
7=1+1+1+1+1+1+1
=1+1+1+1+1+2
=1+1+1+2+2
=1+2+2+2
=1+1+1+4
=1+2+4
Input
输入一个数N(1 <= N <= 10^6)
Output
输出划分方法的数量Mod 1000000007
Input示例
7
Output示例
6
问题链接:51Nod-1383 整数分解为2的幂
问题分析:
这个问题与OEIS中的一个数列相关联,数列的序号是A018819。该数列的名字就是Binary partition function: number of partitions of n into powers of 2。数列问题的关键是该数列的通项公式,该数列的通项公式是条件递推式。有关该数列的通项公式,参见程序。
这个问题打表是必要的,用函数init()来实现。
程序说明:(无)
题记:(略)
参考链接:(无)
AC的C++语言程序如下:
/* 51Nod-1383 整数分解为2的幂 */#include <bits/stdc++.h>using namespace std;const int N = 1e6;
const int MOD = 1e9 + 7;
int f[N + 1];void init()
{f[0] = 1;f[1] = 1;for(int i = 2; i <= N; i++)if(i % 2)f[i] = f[i - 1];elsef[i] = (f[i - 1] + f[i >> 1]) % MOD;
}int main()
{init();int n;while(~scanf("%d", &n))printf("%d\n", f[n]);return 0;
}
51Nod-1383 整数分解为2的幂【数列】相关推荐
- 51nod 13831048 整数分解为2的幂 [递推]【数学】
题目连接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1048 ---------------------------- ...
- 51Nod 1048 1383 整数分解为2的幂
任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量! 比如N = 7时,共有6种划分方法. 7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1+2+2+ ...
- 51Nod 13831048 整数分解为2的幂
题目 任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量. V1:n≤106n≤106n≤10^6.要对答案模1e9+71e9+71e9+7. V2:n≤1030n≤1030n≤10^{ ...
- 【51NOD 1048】【51NOD 1383】整数分解为2的幂 V2
Description 任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量! 比如N = 7时,共有6种划分方法. 7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1 ...
- [51nod13831048]整数分解为2的幂
题目大意 任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量! 比如N = 7时,共有6种划分方法. 7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1 ...
- [递推] 51Nod1383 整数分解为2的幂
简单的递推,类似背包那种加 11 或翻倍的思路. 写这题其实只是水一篇 blogblog ,其实注意还是要做 51nod1048 加强版-- #include<cstdio> #inclu ...
- 数论 —— 整数分解
[概述] 整数分解目前仍是世界级难题,是非常重要的研究方向,其有很多种算法,性能上各有差异,本文仅介绍试除法.Fermat 算法.Pollard Rho 算法. [试除法] 试除法也叫穷举法,是整数分 ...
- VJ 1033 整数分解(版本2)
描述 整数分解(版本2) 一个正整数可以分解成若干个自然数之和.请你编一个程序,对于给出的一个正整数n(1<=n<=1500),求出满足要求的分解方案,并使这些自然数的乘积m达到最大. 例 ...
- JavaScript实现判断整数是否为2的幂isPowerOfTwo算法(附完整源码)
JavaScript实现判断整数是否为2的幂isPowerOfTwo算法(附完整源码) isPowerOfTwo.js完整源代码 isPowerOfTwo.js完整源代码 /*** @param {n ...
最新文章
- CALayer的基本操作
- SpringCloud服务注册启动的时候报错(com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException)
- python这个软件学会能做什么工作-工作三年却被实习生抢了饭碗,学会Python到底有多吃香?...
- python是干什么用的视频-python基础教程千锋最新视频学完之后可以做什么
- 科沃斯机器人双十一全渠道成交额超7亿 两大爆款单品携手破亿
- 10个程序员才懂的灯谜,你能猜对几个?
- JAVA 常用框架和工具
- php如何将mysql数据库中的admin字段赋值给session_转php中使用session_set_save_handler()函数把session保存到MySQL数据库实例...
- 【报告分享】2021年中国人工智能产业研究报告:数字经济时代的产业升级探索.pdf(附下载链接)...
- 4核处理器_4核、6核以及8核 游戏玩家如何按需购买CPU
- [转载] 重新抛出异常与 public Throwable fillInStackTrace()
- SQLServer启动和关闭bat脚本
- 让我小猪佩奇教你如何进行潇洒装逼
- 计算出 3 至 1000 范围内最大的十个素数,放入数组中,并计算出其累加和。
- The remote system refused the connection.
- python函数知识七 闭包、装饰器一(入门)、装饰器二(进阶)
- 在 ABT 节点部署 RPG 制作大师游戏指南 | ArcBlock 博客
- 专业人员选择关键词的标准和原则
- 在线ICO转换器--网站专用
- Windows 10 耳机插入前面板没反应的解决方案
热门文章
- 简书留言收费可行性评估
- spring.net与OracleODP结合时发生的版本问题
- 本地缓存需要高时效性怎么办_Android性能优化之关于缓存的构思
- Sprin boot 加载位置顺序
- html5 过渡时间,CSS3 对过渡(transition)进行调速以及延时
- linux系统重启方式,查看linux系统重启的命令和方式
- android播放背景音乐,Android通过startService播放背景音乐
- java redis jar_Java使用Redis
- python自定义抛出异常信息_浅谈python抛出异常、自定义异常, 传递异常
- python-两种方法实现:从字符串中找出 出现次数最多的 字母和 对应出现的个数