[动态规划]整数拆分(纯DP)
来源:互联网 发布:淘宝怎么修改好评价 编辑:程序博客网 时间:2024/05/19 15:39
/*Name:整数拆分 两种做法 (dp)Actor:HTTime:2015年9月28日Error Reporte:1.初始化边界处理 没弄清*/#include <iostream>#include <stdio.h>#include <conio.h>#include <string.h>#include <vector>#include <algorithm>using namespace std;#define N 125int dp[N][N];void dd() {for (int i = 1; i <= 120; i++) {dp[i][1] = dp[1][i] = dp[0][i] = 1;}for (int i = 2; i <= 120; i++) {for (int j = 2; j <= 120; j++) {if (i < j) dp[i][j] = dp[i][i];else dp[i][j] = dp[i - j][j] + dp[i][j - 1];}}}int main(){int i, j;int n, m;while (scanf("%d %d", &n, &m) != EOF){memset(dp, 0, sizeof(dp));for (i = 1; i <= n; i++)//初始化边界很重要:{dp[0][i] = 1;//处理成功,n到0了,要算一种}for (i = 1; i <= n; i++){for (j = 1; j <= m; j++) {if (i >= j)dp[i][j] = dp[i - j][j] + dp[i][j - 1];//bug点: dp[i-j][j] 而不是dp[i-j][j-1]else if (i < j)//注意判断大小 此处dp[i][j] = dp[i][i];}}printf("%d\n", dp[n][m]);}return 0;}//d[n][m] = n的小于拆分 出现所有数字小于等于m//d[n][m] = d[n-m][m] + d[n][m-1]就两种情况,要么拿,要么不拿!!!!!!!!!!拿了的话,仍然要关于同一个m讨论:是否继续拿/*Another Way*//*#include <iostream>#include <stdio.h>#include <conio.h>#include <string.h>#include <vector>#include <algorithm>using namespace std;#define N 20int dp[N];int main(){int i, j;int n, m;while (scanf("%d %d", &n, &m) != EOF){memset(dp, 0, sizeof(dp));dp[0] = 1;for (j = 1; j <= n; j++){for (i = 1; i <= n; i++){if (i >= j)dp[i] += dp[i - j];}}printf("%d\n", dp[n]);}}//dp[i] = 第i个数的拆分方法//dp[i] = dp[i] + d[i-j]其中j是本次要加的数//大体思路:分别讨论要加的数(1,2,3,...),对于每个拆分的数i,既是i = (i-j) + j//那么就是d(i-j)的种数*/
0 0
- [动态规划]整数拆分(纯DP)
- 整数拆分问题 动态规划解法
- 动态规划--字符串拆分
- 动态规划--字符串拆分
- 整数划分(动态规划)
- dp(整数拆分 uva10313 - Pay the Price)
- UVA 10721 Bar Codes(DP,整数拆分)
- 动态规划(dp)简介
- 常见动态规划(DP)
- poj1015--动态规划(DP)
- 动态规划(DP)算法
- 动态规划(DP)算法
- 动态规划(DP算法)
- 动态规划(dp)基本概念
- [笔记]: dp(动态规划)
- 滑雪 (dp)动态规划
- 动态规划(DP)算法
- 动态规划之字符串拆分
- solr5.3基本学习教程
- 编写程序需要注意的细节(转自高手的总结)
- constexpr和常量表达式
- HTTP协议
- Android Bitmap 与 Drawable之间的区别和转换
- [动态规划]整数拆分(纯DP)
- TCP/IP Monitor 使用总结
- 用dataGridView实现增删改查
- iOS7之后视图被导航栏遮挡问题
- ios D-U-N-S Number(邓白氏编码)申请
- 代理的阶段性小结
- CF581C用k去把n个数补成十的整数倍求最大
- 如何在Mac OS X上安装 Ruby运行环境
- Android MQTT协议和服务器的安装