随笔分类 - 动态规划
摘要:题目:共有n种图案的印章,每种图案的出现概率相同。若买了m张印章,求集齐n种印章的概率。设dp[i][j]为i张印章,j种图案集齐的概率当n<m时,概率为0。由于每种图案的出现概率相同,所以每种图案的概率:1/n设i为购买了i张印章,j为集齐j种若j=1,即:购买了i张印章,集齐了一种图案,概率为(
阅读全文
摘要:例六、 Charm Bracelet 0-1背包问题(POJ3624)有N件物品和一个容积为M的背包。第i件物品的体积 w[i],价值是d[i]。求解将哪些物品装入背包可使价值总 和最大。每种物品只有一件,可以选择放或者不放 (N<=3500,M <= 13000)。21 0-1背包问题(POJ36
阅读全文
摘要:买卖股票的最佳时机 II 给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: p
阅读全文
摘要:例五、神奇的口袋 有一个神奇的口袋,总的容积是40,用这个口袋可以变出 一些物品,这些物品的总体积必须是40。 John现在有n(1≤n ≤ 20)个想要得到的物品,每个物品 的体积分别是a1,a2......an。John可以从这些物品中选择一 些,如果选出的物体的总体积是40,那么利用这个神
阅读全文
摘要:代码:递归 #include <iostream> #include <cstring> #include <algorithm> using namespace std; char str1[10]; char str2[10]; int maxLen(char str1[],char str2[
阅读全文
摘要:例题二:最长上升子序列问题描述一个数的序列ai,当a1 < a2 < ... < aS的时候,我们称这个序 列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到 一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <
阅读全文
摘要:递归动态规划: 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 int D[10][10];//i,j位置的值 6 int n; 7 int maxSum[10][1
阅读全文