题目背景
话说小小鱼看了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版相关推荐

  1. 再练动态规划——(2)自然数拆分Lunatic版

    自然数拆分Lunatic版 题目描述 输入自然数 nnn ,然后将其拆分成由若干数相加的形式,参与加法运算的数可以重复. 输入格式 输入只有一个整数 nnn ,表示待拆分的自然数 nnn . 0< ...

  2. 【背包dp】自然数拆分Lunatic版

    Tyvj 1172 自然数拆分Lunatic版 题意:给定一个自然数n(1<= n <= 4000), 要求把自然数n拆分成n个正整数相加的情况(正整数可以重复出现, 但顺序不同仍视为同一 ...

  3. CH5202 自然数拆分Lunatic版【完全背包】

    5202 自然数拆分Lunatic版 0x50「动态规划」例题 描述 给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复.求拆分的方案数 mod 2147483648的结 ...

  4. TYVJ1172 自然数拆分Lunatic版 - 背包DP[完全背包]

    TYVJ1172 自然数拆分Lunatic版 传送门 思路: 类比TYVJ1096 数字组合 , 本题的数字可以重复使用,所以是一个完全背包模型.\(f[i,j]\)表示当前选到第\(i\)类数字凑成 ...

  5. tyvj1172 自然数拆分Lunatic版

    背景 话说小小鱼看了P1171(自然数拆分)之后感觉异常不爽,于是异常邪恶地将题目加强. 描述 输入自然数n,然后将其拆分成由若干数相加的形式,参与加法运算的数可以重复. 输入格式 输入只有一个整数n ...

  6. 自然数拆分Lunatic版

    第二天叫醒我的不是闹钟,是梦想! 题目描述 给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复.求拆分的方案数 mod 2147483648的结果.1≤N≤4000. 输 ...

  7. 问题 I: 自然数拆分Lunatic版

    你的忏悔或许会让你心安,但未必别人如此. 题目描述 给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复.求拆分的方案数 mod 2147483648的结果.1≤N≤400 ...

  8. 自然数拆分 Lunatic版 TYVJ1172(完全背包)

    题目: 输入自然数n,然后将其拆分成由若干数相加的形式,参与加法运算的数可以重复. 输入格式: 输入只有一个整数n,表示待拆分的自然数n. 1<=n<=4000 输出格式: 输出一个数,即 ...

  9. TVYJ1172 自然数拆分Lunatic版(完全背包问题)

    测试地址:链接 题意描述:给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复.求拆分的方案数 mod 2147483648的结果.1≤N≤4000. 输入格式: 一个整数 ...

最新文章

  1. 简评游戏人工智能相关的中文书(下)
  2. View类的xml属性和相关方法说明
  3. 由于可能不会将凭据发送到远程计算机,因此将不会进行连接。若要获得协助,请与您的系统管理员联系。...
  4. 人工智能技术将重塑银行业
  5. futuretask java 并发请求_Java面试题整理一(侧重多线程并发)
  6. kpi权重设置原则_东阳用友ERP评价体系的建立原则及过程
  7. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查
  8. Redis 读写分离技术,你了解多少?
  9. Python unittest discover()方法与执行顺序补充
  10. Java开发,表单提交中发生中文乱码的问题。
  11. [UNIX]The UNIXHATERS Handbook
  12. FPGA BCD计数器(多位)
  13. javaweb超市仓库管理系统
  14. 计算机装打印机,电脑怎么安装打印机
  15. CSAPP第二章家庭作业
  16. 伦理是智慧的内核驱动
  17. 实现正负值及多条Y轴 Echarts柱状图
  18. 黄铭钧:院长创业与酒
  19. 【数字化】数字化工厂的框架与落地实践;50张图解读数字化制造
  20. 计算机word教案设计,Word文档教学设计

热门文章

  1. 人工智能哪些技术在教育领域中得到了应用?
  2. C++高级进阶教程之STL 教程
  3. java源码 - ReentrantLock之FairSync
  4. 从分析***方式来谈如何防御DDoS***
  5. CentOS 中卸载 RPM 包文件
  6. 6.4-全栈Java笔记:异常处理办法(下)
  7. httpServletRequest中的流只能读取一次的原因
  8. linux包之bash之内置命令ulimit
  9. 交互设计[小插曲]--网站UI配色
  10. 我的2013——不平凡的第一次