
动态规划
bear-bear11
软件工程的学生一枚
展开
-
01背包问题
问题描述 给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个.输入格式 输入的第一行包含两个整数n, m,分别表示物品的个数和背包能装重量。 以后N行每行两个数Wi和Vi,表示物品的重量和价值输出格式 输出1行,包含一个整数,表示最大价值。样例输入3 52 33 54 7原创 2017-11-05 23:35:38 · 925 阅读 · 0 评论 -
hdu 2995 Robberies
Problem DescriptionThe aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually gets caught in the end, often because they become too greedy. He has decided t原创 2017-11-09 18:58:45 · 456 阅读 · 0 评论 -
矩阵连乘----动态规划
问题描述 有n个矩阵,大小分别为a0*a1, a1*a2, a2*a3, ..., a[n-1]*a[n],现要将它们依次相乘,只能使用结合率,求最少需要多少次运算。 两个大小分别为p*q和q*r的矩阵相乘时的运算次数计为p*q*r。输入格式 输入的第一行包含一个整数n,表示矩阵的个数。 第二行包含n+1个数,表示给定的矩阵。输出格式 输出一个整数,表示最少的原创 2017-11-05 17:17:28 · 993 阅读 · 0 评论 -
poj1163 数字三角形 (动态规划)
试题链接:http://poj.org/problem?id=11631.记忆递归型(自顶向下)D[i][j]来存数字典型的递归问题:D(r,j)出发,下一步只能走D(r+1,j)或者D(r+1,j+1).故对于N行的三角形:if(r==N) MaxSum(r,j)=D(r,j)else MaxSum(r,j)=max(MaxSum(r+1,j),MaxSum(r+1,原创 2018-02-07 18:43:18 · 327 阅读 · 0 评论 -
最长上升子序列
输入数据输入的第一行是序列的长度N (1<= N <= 1000)。第二行给出序列中的N个整数,这些整数的取值范围都在0到10000。输出要求最长上升子序列的长度。输入样例71 7 3 5 9 4 8输出样例4动规问题的特点(程序设计与算法(二)算法基础 郭炜)状态转移方程#include <iostream>using namespace std;int a[1...原创 2018-02-19 20:07:44 · 306 阅读 · 0 评论 -
poj1458 最长公共子序列 (动态规划)
试题连接:http://poj.org/problem?id=1458本题的状态:maxlen(i,j)表示:s1前i个字符形成的子串,与s2前j个字符形成的子串的最长公共子序列的长度(i,j从0开始)if(s1[i-1]==s2[j-1]) maxlen(i,j)=maxlen(i-1,j-1)+1;else maxlen(i,j)=max[ maxlen(i,j-1), maxle...原创 2018-02-21 14:48:38 · 273 阅读 · 0 评论