【51NOD 1383】整数分解为2的幂

任意正整数都能拆成若干唯一的2的幂指数之和 任意正整数都能拆成若干唯一的2的幂指数之和,php版本和js版本都有。 立即下载

Description

任何正整数都能分解成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

Solution

显然,当n为奇数时(除了1),fn=fn−1,
对于n为偶数时,首先肯定要加上n-1的值,因为你本次的所有方案中,肯定包含上一轮中的每一种方案再加上1,
那么,有1的方案就已经算完了,剩下的都是2的倍数了,所以总体/2,也就是加上fi/2
所以:

fi=fi−1+fi/2∗[i%2=0]

复杂度:O(n)

Code

#include <iostream>
#include <cstdio>
#include <cstdlib>
#define fo(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long LL;
const int N=1e6+5,mo=1e9+7;
int n,m;
LL f[N];
int main()
{
    int q,w;
    scanf("%d",&n);
    if(n==1){printf("1\n");return 0;}
    n/=2;f[1]=2;
    fo(i,2,n)f[i]=(f[i-1]+f[i/2])%mo;
    printf("%lld\n",f[n]);
    return 0;
}
基于MATLAB的基本数字调制解调系统的设计 基于MATLAB的基本数字调制解调系统的设计一、摘要现代通信系统要求通信距离远、通信容量大、传输质量好,作为其关键技术之一的调制解调技术一直是人们研究的一个重要方向。本文以MATLAB为软件平台,充分利用其提供的通信工具箱和信号处理工具箱中的模块,对数字调制解调系统进行Simulink设计仿真,并且进行误差分析。调制与解调是通信系统中十分重要的一个环节,针对不同的信道环境选择不同的调制与解调方式可... 阅读详情

相关推荐

DDR3性能优化实战:如何用Xilinx MIG控制器实现800MHz稳定读写(7系列FPGA版)

本文深入探讨了在Xilinx 7系列FPGA上使用MIG控制器实现DDR3存储器800MHz稳定高速读写的实战优化技巧。文章聚焦于高级时序调优、Bank Machine调度策略、用户接口设计优化以及利用ILA进行信号完整性调试,旨在帮助工程师突破性能瓶颈,实现接近理论峰值的稳定带宽,并为进一步冲刺更高频率提供进阶调参指南。

seed的博客 775

51Nod-1383-整数分解为2的幂

ACM模版描述题解看到这里,我们应该可以想到,这是一个数论问题,应该是一个什么数列,暴力解出来小数据后,在 OEIS 中查看了一下下,发现的确是一个十分有趣的数列——Binary partition function: number of partitions of n into powers of 2.很明显,这里 f[0]=f[1]=1f[0] = f[1] = 1     f(2m+1)=f(

逐梦者 860

手把手教你用Matlab解析Zygo .dat文件:从二进制数据到面形图(附完整流程)

本文详细介绍了如何使用Matlab解析Zygo干涉仪生成的.dat文件,从二进制数据读取到面形图可视化的完整流程。通过实例代码演示了文件结构解析、数据矩阵读取、高阶Zernike拟合等关键技术,帮助工程师和研究人员高效处理光学检测数据,提升分析精度和工作效率。

weixin_30731305的博客 448

[51Nod 1048] 整数分解为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+2+2 =1+2+2+2 =1+1+1+4 =1+2+4 (1 <= N <= 10^30) SolutionO(N)的

Never give in. 1853

流量特征工程实战:基于Python脚本的CIC-FlowMeter批量自动化处理

本文详细介绍了如何利用Python脚本对CIC-FlowMeter工具进行批量自动化封装,实现从海量PCAP文件中高效提取流量特征并生成CSV文件。通过构建健壮的自动化流水线,解决了手动处理效率低下、易出错的问题,并分享了并行处理、错误处理等关键优化技巧,助力网络流量分析与机器学习数据预处理工作。

c6d7e8f9g的博客 744

SimpleFOC STM32实战:基于F103与HAL库,剖析速度环与电流环的协同控制

本文详细介绍了基于STM32F103与HAL库的SimpleFOC实战应用,重点剖析速度闭环控制与电流环的协同工作原理。通过开发环境搭建、参数调试技巧及性能优化方案,帮助开发者高效实现无刷电机精准控制,适用于机器人、无人机等高精度应用场景。

weixin_29170327的博客 476

[DP]51 Nod——[1048 整数分解为2的幂 V2]

题目描述给定正整数N,求N分解成若干个2的次幂的方案数。N<=1030N<=10^30解题思路之前写过O(n)O(n),看到这个数据范围瞬间就恐惧了。将N表示成一个二进制数,对于每个ai=1ai=1,都有一段区间的和刚好等于2ai2^{ai}我们考虑如何构造区间设g[i][j]g[i][j]表示前i个位置,最大数是2j2^j的方案数很快得到递推式g[i][j]+=g[i−1][k]∗f[ai−k][

CHN_JZ的博客 904

【推荐100个unity插件之24】实现2d交互式草树叶和随风飘动的效果——pixelgraphics插件

【推荐100个unity插件之23】实现2d交互式草树叶和随风飘动的效果——pixelgraphics插件

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1683

51nod - 1383 - 整数分解为2的幂

题意: **来张图片,仅仅证明我真的翻开过这个页面 ** 开玩笑!! 思路: 这道题两种方法 (1)线性的找规律,递推 递推式: i % 2 == 0 :f[ i ] = (f[i - 1] + f[i >> 1]) % mod; i % 2 == 1 :f[ i ] = f[i - 1] (2)DP(动态规划) 代码实现: 递推版本: #include<bits/stdc++.h> using namespace std; typedef long long ll; const

m0_46082460的博客 194

【干货】SAP特殊库存:Q库存(项目库存)全解析,搞懂ETO模式的核心!

在 SAP 系统中,

我小时候很黑的博客 910

Spine骨骼动画查看器 - Skeleton Viewer

骨骼动画是现代游戏和动画制作中常用的技术之一。Spine骨骼动画查看器(Skeleton Viewer)是一个官方提供的工具,用于查看和调试Spine骨骼动画。本文将介绍Skeleton Viewer的功能和使用方法,并提供相应的源代码示例。通过Skeleton Viewer,开发者可以直观地查看和调试Spine骨骼动画,包括骨骼结构、动画播放和事件触发等。这有助于提高骨骼动画的质量和效果,并加速开发过程。以上代码演示了如何使用Skeleton Viewer查看和播放Spine骨骼动画。

HsvvDatabase的博客 3461

拆分为2的幂的和的种数

题目描述 一个整数总可以拆分为2的幂的和,例如: 7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1 总共有六种不同的拆分方式。 再比如:4可以拆分成:4 = 4,4 = 1 + 1 + 1 + 1,4 = 2 + 2,4=1+1+2。 用f(n)表示n的不同拆分的种数,例如f(7)=6. 要求编写程序,

愿世界和平的IT劝退师 1758

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

51Nod1383---整数分解为2的幂

51Nod1383---整数分解为2的幂 容易想到对于某一个数i,它的组合可以看成是i-1的每一种组合加上一个1,但这个1可能会与其他1合并,从而产生新的组合; 当i为奇数时,发现其中有一个1一直没有被合并;对于i-1的每一个组合插入一个1,如果发生合并只会占了原本需要合并、产生新组合的1的位置,因此最后不会产生新组合; 但是当i为偶数时,因为i-1的每一种组合最后必定剩下一个从来没有被合并...

KingTom 298

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

51nod 1383 整数分解为2的幂【递推】

Description任何正整数都能分解成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题解定义f[i]表示i的方案数,可以知道,每个数要么是从前

Sdywolf的博客 364

51nod-1383 整数分解为2的幂

原题链接 1383 整数分解为2的幂 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量!由于方案数量较大,输出Mod 1000000007的结果。 比如N = 7时,共有6种划分方法。 7=1+1+1+1+1+

L. 662

51nod 1383 整数分解为2的幂

画画,找规律。。。 dp[n]表示n的划分方法。 当n为奇数的时候,dp[n]=dp[n-1],n-1每种分解后边都加上一个1就是了。 当n为偶数的时候,dp[n]=dp[n-1]+dp[n/2],n-1的每种分解都加一个1,这是一种情况,因为n是偶数,还有把1合并成2,把2合并成4的情况,这时候多出的这部分分解后的最小单位是2,分解个数最多的就是n/2个2,把这些数字全部都除以2,正好就是n

梦幻的蔷薇色 441

【51Nod 1383】整数分解为2的幂

Description任何正整数都能分解成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+4Solution看到这题就是一个递推题,在数学课上不听讲找

Facico的博客 1424

51NOD 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 &lt;= N &lt;= 10^6) Outp...

hh1258414454的博客 217

[51Nod 1383] 整数分解为2的幂

Description 任何正整数都能分解成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 输入一个数N

Never give in. 505

51nod 1383&1048 整数分解为2的幂 [递推]【数学】

题目连接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1048————————————————————————————————————-. 整数分解为2的幂 基准时间限制:3 秒 空间限制:131072 KB 分值: 1280 难度:9级算法题 任何正整数都能分解成2的幂,给定整数N,求N的此类划分方法的数量! 比如

Tabris的博客 703

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 &lt;= N ...

海岛Blog 809

51Nod 1383&1048 整数分解为2的幂

对于某个2^i的一种划分方案,如果不是只有它本身一个数,一定可以把这些2的幂按照升序排序,然后分成两段,每一段的和都是2^{i−1}。

Luckfort 397

51nod 1383 整数分解为2的幂(数列,也可以自己根据观察找规律推理得到递推公式)

描述: 组合数学生成函数 1383 整数分解为2的幂 1 秒   131,072 KB   80 分   5 级题 任何正整数都能分解成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+...

nowting的博客 276

【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+2+2 =1+2+2+2 =1+1+1+4 =1+2+4Solution设gi,j,kg_{i,j,k}表示一个序列组成2i2^i这个数,这个序列中最大的数为2j2^j,最

912

[递推] 51Nod1383 整数分解为2的幂

简单的递推,类似背包那种加 11 或翻倍的思路。 写这题其实只是水一篇 blogblog ,其实注意还是要做 51nod1048 加强版……#include<cstdio> #include<algorithm> using namespace std; const int maxn=10000005,MOD=1e9+7; int n,f[maxn]; int main(){ scanf(

Lynstery's blog 449
上一篇: 【JZOJ 3809】设备塔
下一篇: 【JZOJ 4939】平均值
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值