![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 70
RIPwangh
山东理工大学本科学生
展开
-
数字三角形
Time Limit: 1000MS Memory limit: 65536K 题目描述给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。对于给定的由n行数字组成的数字三角形,计算从三角形的顶至底的路径经过的数字和的最大值。输入输入数据的第1行是数字三角形的行数n,1≤n≤100。接下来n行是数字三角形各行中的数字。所有数字在原创 2015-05-12 22:25:59 · 1010 阅读 · 0 评论 -
POJ-1276-Cash Machine-多重背包
题目大意:有各种不同面值的货币,每种面值的货币有不同的数量,请找出利用这些货币可以凑成的最接近且小于等于给定的数字cash的金额。 思路:转化为01背包转化为完全背包1.01背包#include#include#includeusing namespace std;int dp[110000], t[30000], s[2000][2];int main()原创 2015-08-21 16:15:35 · 464 阅读 · 0 评论 -
POJ - 2151-Check the difficulty of problems-概率dp
题意:有t支队伍,m道题,冠军最少做n道题,问保证每队最少做一题,冠军最少做n题的概率思路:高中知识还真是没剩下多少了,下面转载别人博客中的解释,很详细,基本上看着这个思路,将之代码化就能过,注意精度。#include#include#includedouble dp[1005][35][35],p[1005][35],s[1005][35];int main(){原创 2015-08-17 09:34:14 · 526 阅读 · 0 评论 -
POJ-1159-Palindrome-lcs扩展
题意: 看需要增加几个字母可以使该串变成回文串思路: LCS的扩展,把串反过来,然后找他们的最长公共子序列的长度,用n减去这个数就可以了方法1: LCS普通CODE49720K 688ms#include#include#include#include#includeusing namespace std;short c[5005][5005];原创 2015-08-25 11:19:06 · 377 阅读 · 0 评论 -
POJ-1260-Pearls-动规
题意:要买若干种价值的珍珠,但买某种珍珠必须多付10颗此种珍珠的价钱,及如果买价值为1的珍珠100颗,必须付的钱数为110。一颗珍珠可以用比它贵的珍珠充数,因此买多种珍珠的时候用贵的代替便宜的可能更省钱。例如买100颗价值为2的、1颗价值为1的,此时买101颗价值为2的为较优方案。输入要买的若干种珍珠,可用高价珍珠充数的条件下,问最少需要花费多少钱。经典dp:高档次的珍珠若要和低档次的珍珠原创 2015-08-24 17:29:45 · 531 阅读 · 0 评论 -
POJ-3267-The Cow Lexicon-动规×
题意:给定字符串msg,再给定W个单词,要求从s中去掉最少的字符后能够被这些单词表示。求最少去掉多少字符。用d[ i ]表示从msg[ 0...i ]中最少去掉字符的个数, remove [ j, k ] 表示msg[ j ... k ] 中包含了某个单词后去掉的字符个数。状态转移方程就为 d[ i ] = min ( d[ j - 1] + remove[ j, i ] ),0 i。原创 2015-08-24 16:20:51 · 477 阅读 · 0 评论 -
poj-1836-Alignment-动态规划
题意:给你一排人的身高,要求每个人至少能够看到一边的排头(左边或右边),要删除的最小的人数思路: 相信大家做过最长上升子序列的问题,而这个只需把它正着来一遍LIS,反着来一遍,然后枚举那个中间点CODE#include#include#includedouble ls[1100];int l[1100], lx[1100];int main(){ int原创 2015-08-24 14:56:09 · 474 阅读 · 0 评论 -
走迷宫
Time Limit: 1000MS Memory limit: 65536K 题目描述有一个m*n格的迷宫(表示有m行、n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,输入这m*n个数据和起始点、结束点(起始点和结束点都是用两个数据来描述的,分别表示这个点的行号和列号)。现在要你编程找出所有可行的道路,要求所走的路中没有重复的点,走时只能是上下左右四个方向。如果原创 2015-05-14 19:15:01 · 1621 阅读 · 0 评论 -
马的走法
Time Limit: 1000MS Memory limit: 65536K 题目描述在一个4*5的棋盘上,马的初始位置坐标(纵 横)位置由键盘输入,求马能返回初始位置的所有不同走法的总数(马走过的位置不能重复,马走“日”字)。如果马的初始位置坐标超过棋盘的边界,则输出ERROR。例如初始位置为4 6,则输出ERROR。输入输入数据只有一行,有两个用空格分开的整数,表示马所在原创 2015-05-12 22:00:20 · 1436 阅读 · 0 评论 -
上升子序列
Time Limit: 1000MS Memory limit: 65536K 题目描述 一个只包含非负整数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列{a1, a2, …,aN},我们可以得到一些上升的子序列{ai1, ai2, …, aiK},这里1 ≤ i1 < i2 <…< iK ≤ N。例如:对于序列{1, 7, 3, 5, 9, 4,原创 2015-05-12 22:39:21 · 576 阅读 · 0 评论 -
POJ-1837-Balance -01背包
提示:动态规划,01背包初看此题第一个冲动就是穷举。。。。不过再细想肯定行不通= =O(20^20)等着超时吧。。。我也是看了前辈的意见才联想到01背包,用动态规划来解 题目大意:有一个天平,天平左右两边各有若干个钩子,总共有C个钩子,有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数。其中可以把天枰看做一个以x轴0点作为平衡点的横轴输入:2 4 //C 钩子转载 2015-08-21 10:55:35 · 478 阅读 · 0 评论