动态规划
11
pm12137
这个作者很懒,什么都没留下…
展开
-
Bellovin(最长上升子序列)
题意:给定n个数,求到 i 为止的最长上升子序列的长度。链接:http://acm.hdu.edu.cn/showproblem.php?pid=5748代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include原创 2016-07-25 15:28:41 · 283 阅读 · 0 评论 -
最大报销额(HD1864)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1864代码:#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;const int INF=3000010;int dp[INF];int val[INF];...原创 2019-03-05 16:51:04 · 251 阅读 · 0 评论 -
Building Shops(动态规划)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6024 题意:给出n个糖果店的坐标以及建造该糖果店的花费,如果建造该糖果店那么总花费加上建造的费用,如果不建那么总花费加上该糖果店与它左边最近的一个糖果店的距离。 思路: 1. 一开始想的是它每一个建或者不建的最少花费可不可以理解为它与前一个的距离是否大于建它本身所需要的花费,后来经过大佬提点,这样子贪原创 2017-05-11 16:06:33 · 392 阅读 · 0 评论 -
矩阵取数
链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1083题意:一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下向右走,求能够获得的最大价值。思路:我们可以发现:到第一行或者第一列的最大值为它的上一个的值加上本身即:dp[i][j] = dp[i][j-1] + juz[i原创 2017-04-28 09:18:44 · 455 阅读 · 0 评论 -
最长递增子序列
链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1134int bin(int size,int k) //二分法找的是当前值在临时数组中的位置,而临时数组在存储的过程中已经是排好序的了{ int l = 1,r = size; while(l<=r) {原创 2017-04-07 09:52:18 · 179 阅读 · 0 评论 -
编辑距离(动态规划经典)
1183 编辑距离编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitten一字转成sitting:sitten (k->s)sittin (e->i)sitting (->g)所以kitten和sitting的编辑距离是3原创 2017-04-04 11:17:26 · 1492 阅读 · 0 评论 -
I NEED A OFFER(动态规划,01背包)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1203思路: 1. dp[i] = p; 其中 i 是总共的花费, p 是概率; 2. dp数组的初始化,由于这里用的是求最小的全都选不上的概率,所以全部初始化为大的值 3. 输入时为 n||m ,而非 n&&m;代码:#include <iostream>#include <cstdio>#inc原创 2017-03-04 11:37:21 · 331 阅读 · 0 评论 -
合并石子(三重dp)
问题描述 在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数。求把所有石子合并成一堆的最小花费。 输入格式 输入第一行包含一个整数n,表示石子的堆数。 接下来一行,包含n个整数,按顺序给出每堆石子的大小 。 输出格式 输出一个整数,表示合并的最小花费。 样例输入 5 1 2 3 4 5 样例原创 2017-02-24 20:26:50 · 401 阅读 · 0 评论 -
hdu1087(动态规划)
Super Jumping! Jumping! Jumping!Problem DescriptionNowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know little about this原创 2017-02-03 14:26:18 · 1513 阅读 · 1 评论 -
蓝桥——k好数(动态规划)
题意:如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。思路:典型的动态规划题:一位一位的去填充,用一个二维数组F[i][j]表示i位数以j结尾一共有多少种,接下来要放下一位的话,只要判断要放的这位数字是否是j的邻位即可。参考:http://blog.csdn.net/ljd4305/article/details/212原创 2016-12-26 20:23:58 · 4025 阅读 · 1 评论 -
最长公共子序列
题意:给出两个序列,求最长公共子序列。链接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1006思路:状态转移方程:if(a[i-1] == b[j-1]) dp[i][j] = dp[i-1][j-1] + 1;else dp[i][j] = max(dp[i-1][j], dp[i][j原创 2016-08-15 11:30:13 · 233 阅读 · 0 评论 -
最大连续子序列
题意:给出一个序列,求这个序列的最大连续子序列。链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003思路:从输入开始,四个变量:ma:记录每次的最大值。st:序列开始,当res小于0时,从下一个开始。en:序列尾,每当当前值大于原先的ma时,en就等于当前,不能直接令en加1。res : 记录每次加上输入的值后的总值,以res判定是否大于原先的最原创 2016-08-13 15:11:24 · 486 阅读 · 0 评论 -
背包问题
题意:如题链接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1085代码:#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <algorithm>using n原创 2016-08-17 10:10:08 · 215 阅读 · 0 评论 -
Zipper
题意: 给出三个字符串,判断第三个字符串是否能由第一二个字符串中的字符构成,其中第一二个字符串中的字符次序不能乱。链接:http://acm.hdu.edu.cn/showproblem.php?pid=1501思路:典型的搜索问题,用dfs,对一二个字符串进行搜索,定义一个标志数组,确定第一二个字符串序列的访问情况。代码:#include <iostream>#include <cstdio>原创 2016-07-25 17:22:07 · 389 阅读 · 0 评论 -
1003 Emergency
1003Emergency(25分)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams...原创 2019-03-16 15:07:11 · 428 阅读 · 0 评论