动态规划
BIG_GENERAL_DD
好好学习,天天向上.
展开
-
操作格子 (数的划分)
题目描述 Description将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序)。例如:n=7,k=3,下面三种划分方案被认为是相同的。1 1 51 5 15 1 1问有多少种不同的分法。输入描述 Input Description输入:n,k (6输出描述 Output Description转载 2017-03-25 14:34:13 · 349 阅读 · 0 评论 -
分析程序调用几次函数
int f(int x) { if(x<=2) return 1; return f(x-2)+f(x-4)+1;}当x=10时候,程序共调用几次?分析:针对这样的题目在别的地方看到的比较好的方法是用树来表示 10原创 2017-07-24 20:21:23 · 590 阅读 · 0 评论 -
ADV-62算法提高 夺宝奇兵
算法提高 夺宝奇兵 [题目描述] 在一座山上,有很多很多珠宝,它们散落在山底通往山顶的每条道路上,不同道路上的珠宝的数目也各不相同.下图为一张藏宝地图: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 ”夺宝奇兵”从山下出发,到达山顶,如何选路才能得到最多的珠宝呢?在上图所示例子中,按照5->7->8->3->7的顺序,将得原创 2017-03-26 11:20:41 · 867 阅读 · 1 评论 -
数的划分 不同思路与解法
点击打开链接将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序)。dp[i][j]:把数i分成k分的方案数则:dp[i][j]=sum(dp[i-j][t])(t>=1&&t#include #include#include#include using namespace std;int dp[501][21];int main(){ int转载 2017-03-10 22:20:42 · 356 阅读 · 0 评论 -
动态规划-整数划分问题(2)
整数划分 --- 一个老生长谈的问题: 1) 练练组合数学能力. 2) 练练递归思想 3) 练练DP 总之是一道经典的不能再经典的题目: 这道好题求: 1. 将n划分成若干正整数之和的划分数。 2. 将n划分成k个正整数之和的划分数。 3. 将n划分成最大数不超过k的划分数。 4. 将n划分成若干奇正整数之和的划分数。 5. 将n划分成若转载 2017-03-11 09:02:36 · 361 阅读 · 0 评论 -
【动态规划】最长公共子序列与最长公共子串
3. 参考资料[1] cs2035, Longest Common Subsequence.[2] 一线码农, 经典算法题每日演练——第四题 最长公共子序列.[3] GeeksforGeeks, Dynamic Programming | Set 29 (Longest Common Substring).转载 2017-03-13 20:49:42 · 351 阅读 · 0 评论 -
动态规划 最大的算式
题目描述题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。例如:N=5, K=2,5个数字分别为1、2、3、4、5,可以加成:1*2*(3+4+5)=241*(2+3)*(4+5)=45(1*2+3)*(4+5)=45……转载 2017-03-15 19:26:13 · 815 阅读 · 0 评论 -
动态规划 拿糖果
问题描述 妈妈给小B买了N块糖!但是她不允许小B直接吃掉。 假设当前有M块糖,小B每次可以拿P块糖,其中P是M的一个不大于根号下M的质因数。这时,妈妈就会在小B拿了P块糖以后再从糖堆里拿走P块糖。然后小B就可以接着拿糖。 现在小B希望知道最多可以拿多少糖。输入格式 一个整数N输出格式 最多可以拿多少糖样例输入15样例转载 2017-03-15 19:45:27 · 1041 阅读 · 1 评论 -
动态规划 (k好数)
动态规划:一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问转载 2017-03-15 19:54:46 · 456 阅读 · 0 评论 -
输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数, 使其和等于 m
编程求解:输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.思路:从小到大 依次拼凑 后面选的数字 必须比前面大 保证不重复如: n = 4 m = 81 2 3 4 超过8 去掉最后一个数 导数第二个数加一1 2 4 小于8 最后一个数等于 4 去掉最后一个数 导数第二个数原创 2017-09-02 18:47:27 · 1488 阅读 · 0 评论