51nod1201 整数划分
2024-08-25 23:04:03
01背包显然超时。然后就是一道神dp了。dp[i][j]表示j个数组成i的方案数。O(nsqrt(n))
#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
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;
}
将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
最新文章
- asp.net dataTable转换成Json格式
- [sql查询] 重复数据只取一条
- Java Native Interface 二 JNI中对Java基本类型和引用类型的处理
- 【转】web集群时session同步的3种方法
- [docker] 管理docker容器中的数据
- Java、JSP获得当前日期的年、月、日
- android 下载instagram动态中图片的demo
- Static NAT with iptables on Linux
- Nginx常用Rewrite伪静态法则
- HDOJ 5093 Battle ships 二分图匹配
- BestCoder Round #20 部分题解(A,B,C)(hdu5123,5124,5125)
- MFC中为菜单或按钮添加快捷键功能
- 【社交系统ThinkSNS+研发日记三】基于 Laravel Route 的 ThinkSNS+ Component
- JDBCTemplate简化JDBC的操作(一)
- vue中实现动态切换不同的值
- Centos7上安装java
- Spark 官方博文专区(目录)
- FCC JS基础算法题(3):Find the Longest Word in a String (找出最长单词)
- css3不错的教程
- cocos2d-x 开发用到的工具