随笔分类 -  动态规划

摘要:/* * LIS.cpp * * Created on: 2014-5-6 * Author: wangzhu */#include#include#includeusing namespace std;#define NMAX 100001int num[NMAX], arr[NMAX... 阅读全文
posted @ 2014-05-06 12:21 qingyezhu 阅读(157) 评论(0) 推荐(0)
摘要:穷举,确定好子数组的开始与结束 动态规划 阅读全文
posted @ 2014-05-06 09:03 qingyezhu 阅读(214) 评论(0) 推荐(0)
摘要:很典型的动态规划题很好的算法:f(m, n) = f(m-n, n) + f(m, n-1)f(m, n): 把m个苹果放到n个盘子中的方法数f(m, n-1): 把m个苹果放到n-1个盘子中的方法数(其中至少有一个空盘子)f(m-n, n): 把m个苹果放到n个盘子中,而且每个盘子中都有苹果(先拿n个出来,等m-n个放好了,然后每个盘子放一个)/* * hrbeuapple.c * * Created on: 2011-10-10 * Author: bjfuwangzhu */#include<stdio.h>#define nmax 11int num[nmax][nmax] 阅读全文
posted @ 2011-10-10 21:01 qingyezhu 阅读(222) 评论(0) 推荐(0)
摘要:状态转移方程为:num[n][k]=num[n-1][k-1]+num[n-k][k]表示n个Apple分给k个People,1).若k个人不能获得一样的,则为了满足题意,需要将最后一个人先分1个,再将剩余n-1的分给k-1个人;2).若能,则就变成了将n-k个Apple分给k个People的子过程。/* * soj3291.c * * Created on: 2011-10-10 * Author: bjfuwangzhu */#include<stdio.h>#define nmod 10009#define nmax 1010int num[nmax][nmax];void 阅读全文
posted @ 2011-10-10 15:04 qingyezhu 阅读(177) 评论(0) 推荐(0)
摘要:整数划分 --- 一个老生长谈的问题: 1) 练练组合数学能力. 2) 练练递归思想 3) 练练DP 总之是一道经典的不能再经典的题目: 这道好题求: 1. 将n划分成若干正整数之和的划分数。 2. 将n划分成k个正整数之和的划分数。 3. 将n划分成最大数不超过k的划分数。 4. 将n划分成若干奇正整数之和的划分数。 5. 将n划分成若干不同整数之和的划分数。1.将n划分成不大于m的划分法: 1).若是划分多个整数可以存在相同的: dp[n][m]= dp[n][m-1]+ dp[n-m][m]dp[n][m]表示整数 n 的划分中,每个数不大于 m 的划分数。 ... 阅读全文
posted @ 2011-09-12 20:58 qingyezhu 阅读(8385) 评论(6) 推荐(3)