[JOYOI] 自然数拆分Lunatic版
题目背景
话说小小鱼看了P1171(自然数拆分)之后感觉异常不爽,于是异常邪恶地将题目加强。题目描述
输入自然数n,然后将其拆分成由若干数相加的形式,参与加法运算的数可以重复。输入格式
输入只有一个整数n,表示待拆分的自然数n。 0<n<=4000
PS:0也算自然数,所以这里应该写正整数比较好
但是为了尊重原作者的版权(这有版权吗- -),没有改掉。
本来n是要到5000的,但是开到5000的话我的程序就Memory Limit Exceeded了。。输出格式
输出一个数,即所有方案数
因为这个数可能非常大,所以你只要输出这个数 mod 2147483648 的余数即可。提示
解释:
输入7,则7拆分的结果是
7=1+6
7=1+1+5
7=1+1+1+4
7=1+1+1+1+3
7=1+1+1+1+1+2
7=1+1+1+1+1+1+1
7=1+1+1+2+2
7=1+1+2+3
7=1+2+4
7=1+2+2+2
7=1+3+3
7=2+5
7=2+2+3
7=3+4一共有14种情况,所以输出14 mod 2147483648,即14小小鱼加强Admin的P1171
PS:虽说加强了,但是好像还是很简单。。。样例数据
输入样例 #1 输出样例 #1
7
14
完全背包,物品数字,容量n。
//Stay foolish,stay hungry,stay young,stay simple
#include<iostream>
#include<cstdio>
#include<cctype>
using namespace std;const int MAXN=5005;
const long long MOD=2147483648;
inline int rd(){int ret=0,f=1;char c;while(c=getchar(),!isdigit(c))f=c=='-'?-1:1;while(isdigit(c)){ret=ret*10+c-'0';c=getchar();}return ret*f;
}long long f[MAXN],a[MAXN];
int n,m; int main(){n=rd();f[0]=1;for(int i=1;i<=n;i++){for(int j=i;j<=n;j++){f[j]=(f[j]+f[j-i])%MOD;}}cout<<(f[n]>0?f[n]-1:MOD-1)<<endl;return 0;
}
转载于:https://www.cnblogs.com/ghostcai/p/9247428.html
[JOYOI] 自然数拆分Lunatic版相关推荐
- 再练动态规划——(2)自然数拆分Lunatic版
自然数拆分Lunatic版 题目描述 输入自然数 nnn ,然后将其拆分成由若干数相加的形式,参与加法运算的数可以重复. 输入格式 输入只有一个整数 nnn ,表示待拆分的自然数 nnn . 0< ...
- 【背包dp】自然数拆分Lunatic版
Tyvj 1172 自然数拆分Lunatic版 题意:给定一个自然数n(1<= n <= 4000), 要求把自然数n拆分成n个正整数相加的情况(正整数可以重复出现, 但顺序不同仍视为同一 ...
- CH5202 自然数拆分Lunatic版【完全背包】
5202 自然数拆分Lunatic版 0x50「动态规划」例题 描述 给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复.求拆分的方案数 mod 2147483648的结 ...
- TYVJ1172 自然数拆分Lunatic版 - 背包DP[完全背包]
TYVJ1172 自然数拆分Lunatic版 传送门 思路: 类比TYVJ1096 数字组合 , 本题的数字可以重复使用,所以是一个完全背包模型.\(f[i,j]\)表示当前选到第\(i\)类数字凑成 ...
- tyvj1172 自然数拆分Lunatic版
背景 话说小小鱼看了P1171(自然数拆分)之后感觉异常不爽,于是异常邪恶地将题目加强. 描述 输入自然数n,然后将其拆分成由若干数相加的形式,参与加法运算的数可以重复. 输入格式 输入只有一个整数n ...
- 自然数拆分Lunatic版
第二天叫醒我的不是闹钟,是梦想! 题目描述 给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复.求拆分的方案数 mod 2147483648的结果.1≤N≤4000. 输 ...
- 问题 I: 自然数拆分Lunatic版
你的忏悔或许会让你心安,但未必别人如此. 题目描述 给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复.求拆分的方案数 mod 2147483648的结果.1≤N≤400 ...
- 自然数拆分 Lunatic版 TYVJ1172(完全背包)
题目: 输入自然数n,然后将其拆分成由若干数相加的形式,参与加法运算的数可以重复. 输入格式: 输入只有一个整数n,表示待拆分的自然数n. 1<=n<=4000 输出格式: 输出一个数,即 ...
- TVYJ1172 自然数拆分Lunatic版(完全背包问题)
测试地址:链接 题意描述:给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复.求拆分的方案数 mod 2147483648的结果.1≤N≤4000. 输入格式: 一个整数 ...
最新文章
- 简评游戏人工智能相关的中文书(下)
- View类的xml属性和相关方法说明
- 由于可能不会将凭据发送到远程计算机,因此将不会进行连接。若要获得协助,请与您的系统管理员联系。...
- 人工智能技术将重塑银行业
- futuretask java 并发请求_Java面试题整理一(侧重多线程并发)
- kpi权重设置原则_东阳用友ERP评价体系的建立原则及过程
- JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查
- Redis 读写分离技术,你了解多少?
- Python unittest discover()方法与执行顺序补充
- Java开发,表单提交中发生中文乱码的问题。
- [UNIX]The UNIXHATERS Handbook
- FPGA BCD计数器(多位)
- javaweb超市仓库管理系统
- 计算机装打印机,电脑怎么安装打印机
- CSAPP第二章家庭作业
- 伦理是智慧的内核驱动
- 实现正负值及多条Y轴 Echarts柱状图
- 黄铭钧:院长创业与酒
- 【数字化】数字化工厂的框架与落地实践;50张图解读数字化制造
- 计算机word教案设计,Word文档教学设计