题目:考试有N门科目,总分是T,每门分数不少于P,问有多少种不同的分数。
分析:dp,动态规划,组合数学。整数拆分,可以用动态规划求解。
这里使用组合数学,另V = T - P*N,则为V个相同球放入N个不同盒子的模型,可以空;
解为C(V+N-1,N-1)。
说明:╮(╯▽╰)╭。
#include
#include
#include...
分类:
其他好文 时间:
2015-05-13 01:00:01
阅读次数:
266
动态规划求解矩阵连乘问题Java实现,并且使用备忘录方法对动态规划算法改进...
分类:
编程语言 时间:
2015-05-12 09:35:24
阅读次数:
621
欧几里得旅行商问题是一个NP问题,问题描述:平面上n个点,确定一条连接各点的最短闭合旅程。所以通常会简化为双调欧几里得问题来求一个近似解,借用下算法导论的图,如下所示a)是一个最优欧几里得b)为双调路线,从最左点开始严格向右至最右点通过动态规划求解,首先需要分析子问题:双调路径为 i -> 0,0 ...
分类:
其他好文 时间:
2015-04-08 10:48:41
阅读次数:
316
#includeusing namespace std;void Print_LCS(int **b, string X, int i, int j){ if (i == 0 || j == 0) return; if (b[i][j] == 1) { ...
分类:
其他好文 时间:
2015-04-07 21:31:26
阅读次数:
114
动态规划方法通常用来求解最优化问题。适合使用动态规划求解最优化问题应具备的两个要素:1、最优子结构:如果一个问题的最优解包含子问题的最优解,那么该问题就具有最优子结构。2、子问题重叠(如果子问题不重叠就可以用递归的方法解决了)具备上述两个要素的问题之所以用动态规划而不用分治算法是因为分治算法会反复的...
分类:
编程语言 时间:
2015-04-07 15:16:36
阅读次数:
233
求解多目标规划的思路 1、加权系数法 为每一个目标加一个权系数,把多目标模型转化成单一目标模型。但是困难时确定合理的权系数,以反映不同目标之间的重要程度。 2、优先等级法 将各目标按其重要程度分为不同的优先等级,转化为单目标模型。 3、有效解法 寻求能够照顾到各个目标,并使决策者感到满意的解。由决策...
分类:
编程语言 时间:
2015-02-05 07:01:07
阅读次数:
323
数组分割——解题笔记
题目:有一个没有排序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为元素个数为n的两个数组,并使两个子数组的和最接近。
分析:这道题目可以用动态规划求解,或者说是一个典型的0,1背包问题,对于第i的数,到底是放进去还是不放,就要看放了对结果有什么影响,不放对结果又有什么影响。而结果是依据题目而言的,这道题目中的结果就是数组之和...
分类:
编程语言 时间:
2015-02-04 16:41:10
阅读次数:
179
最长递增子序列——解题报告
题目描述:给定一个数组,长度为n,求出其中最长递增子序列。
分析:这题可以用动态规划求解,遍历i = 1 : n,当第i个数比前面j数大,而且前面的子序列长度加1之后,比现在的第i个子序列长的话,那么就变换。额,晦涩难懂额。。看代码可以好一些。
代码如下:
#include
using namespace std;
...
分类:
其他好文 时间:
2015-02-04 13:06:17
阅读次数:
144
原题地址最朴素的想法是,对于每个位置,挨个尝试一遍不同的跳法,这样总能找到最优解,最坏情况下A[i]=n,那么时间复杂度为O(n^2)。显然会超时,所以在这个朴素的算法上改进。如果用动态规划求解,考虑如何划分子问题。一个很自然的想法是将起跳点为子问题边界,令p[i]表示从第i个位置起跳,到终点所需最...
分类:
其他好文 时间:
2015-01-18 15:40:58
阅读次数:
237
动态规划题目(三)——最大连续乘积子串
1. 题目描述
给一个浮点数序列,取最大乘积连续子串的值,例如 -2.5,4,0,3,0.5,8,-1,则取出的最大乘积连续子串为3,0.5,8。也就是说,上述数组中,3 0.5 8这3个数的乘积30.58=12是最大的,而且是连续的。
2. 动态规划求解
动态规划求解题目的时候最重要的是要找到状态转移方程!...
分类:
其他好文 时间:
2014-12-11 10:32:04
阅读次数:
128