博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51nod1201 整数划分
阅读量:5248 次
发布时间:2019-06-14

本文共 801 字,大约阅读时间需要 2 分钟。

01背包显然超时。然后就是一道神dp了。dp[i][j]表示j个数组成i的方案数。O(nsqrt(n))

#include
#include
#include
#include
using namespace std;#define rep(i,s,t) for(int i=s;i<=t;i++)#define dwn(i,s,t) for(int i=s;i>=t;i--)const int nmax=5e4+5;const int mod=1e9+7;int dp[nmax][355];int main(){ int n;scanf("%d",&n); dp[1][1]=1; rep(i,2,n) rep(j,1,min(i,350)) dp[i][j]=(dp[i-j][j]+dp[i-j][j-1])%mod; int ans=0; rep(i,1,350) ans=(ans+dp[n][i])%mod; printf("%d\n",ans); return 0;}

  

基准时间限制:1 秒 空间限制:131072 KB 分值: 80 
 收藏
 关注
将N分为若干个不同整数的和,有多少种不同的划分方式,例如:n = 6,{6} {1,5} {2,4} {1,2,3},共4种。由于数据较大,输出Mod 10^9 + 7的结果即可。
 
Input
输入1个数N(1 <= N <= 50000)。
Output
输出划分的数量Mod 10^9 + 7。
Input示例
6
Output示例
4

转载于:https://www.cnblogs.com/fighting-to-the-end/p/5873126.html

你可能感兴趣的文章
FancyCoverFlow
查看>>
JS博客
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
283. Move Zeroes把零放在最后面
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
Python 数据类型
查看>>
S5PV210根文件系统的制作(一)
查看>>
51NOD 1244 莫比乌斯函数之和
查看>>
centos下同时启动多个tomcat
查看>>
slab分配器
查看>>
数据清洗
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>
Struts2工作原理
查看>>
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
【SVM】libsvm-python
查看>>
C++循环单链表删除连续相邻重复值
查看>>
渣渣小本求职复习之路每天一博客系列——Java基础(3)
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>