自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 51nod 1183 编辑距离

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1183.题意不再赘述。分析:对于两个字符串s和t,dp[i][j]记录s的前i个字符转换到t的前j个字符的最小编辑距离。那么很容易得到转移方程 dp[i][j] = min(dp[i][j], dp[i-1][j-1] + s[i-1] == t[j-1] ? 0

2015-10-31 02:02:08 1718

原创 POJ 1160 Post Office(经典DP)

题意: 一些村庄被建立在一条笔直的高速公路边上,我们用一条坐标轴来描述这条高速公路,每一个村庄的坐标都是整数,没有两个村庄坐标相同。两个村庄间的距离,定义为它们的坐标值差的绝对值。我们需要在一些村庄建立邮局——当然,并不是每一个村庄都必须建立邮局,邮局必须被建立在村庄里,因此它的坐标和它所在的村庄坐标相同。每个村庄使用离它最近的那个邮局,建立这些邮局的原则是:所有村庄到各自

2015-10-30 17:48:09 566

原创 POJ 3361 Running

题意:给你一个n,m,n表示有n分钟,每i分钟对应的是第i分钟能跑的距离,m代表最大疲劳度,每跑一分钟疲劳度+1,当疲劳度==m,必须休息,在任意时刻都可以选择休息,如果选择休息,那么必须休息到疲劳度为0,当然,当疲劳度为0的时候也是可以继续选择休息的,求在n分钟后疲劳度为0所跑的最大距离dp[i][j]表示第i分钟疲劳度为j时所跑的最大距离。在疲劳度为0时,我们可以继续休息。则此时有转移

2015-10-30 13:35:14 369

原创 POJ 1141 Brackets Sequence(区间DP记录路径)

题意:给出一串括号,要你补上最少的括号使这一串括号都匹配。思路:dp[i][j]表示区间(i,j)最少要补的括号数。对于每个dp[i][j],初始化为不与后面任何括号匹配的情况,那么显然我们需要填一个括号。这里我们从i = j - 1 到 i = 0扫描区间,所以有dp[i][j] = dp[i+1][j] + 1。接下来再考虑(i,j)中是否又于s[i]匹配的括号。对i dp[i][

2015-10-29 20:30:18 374

原创 ZOJ 3469 Food Delivery(区间DP,经典题)

题目大意:有一家快餐店送外卖,现在同时有n个家庭打进电话订购,送货员得以V-1的速度一家一家的运送,但是每一个家庭都有一个不开心的值,每分钟都会增加一倍,值达到一定程度,该家庭将不会再订购外卖了,现在为了以后有更多的家庭订购,要将外卖送到的情况下使得所有用户的不开心值总和达到最小很明显,每多走一分钟,没送到的家庭的不开心值都会加倍。dp[i][j][0]记录从i到j区间最小

2015-10-29 18:59:55 372

原创 POJ 3280 Cheapest Palindrome(区间DP)

dp[i][j]记录从i到j区间转换成回文串的最小cost。于是对于每个区间(i,j),我们已经知道了它的所有子区间转换成回文串的最小花费,那么只需要讨论它的新边界的字符,i,j,i和j三种情况就可以得到dp[i][j]的最小花费。首先我们要明白,删除和添加一个字符是没有区别的,因为我们讨论区间(i,j)的子区间符文串时,无需关心其在处理符文串操作时是加了一个字符还是删了一个字符,所以输入

2015-10-28 18:42:35 346

原创 UVa 10891 Game of Sum(博弈区间DP)

题意:给定n个数字,A和B可以从这串数字的两端任意选数字,一次只能从一端选取。并且A B都尽力使自己选择的结果为最大的,可以理解成A B每一步走的都是最优的。如果A先选择,则A B差值最大是多少。思路:dp[i][j]维护玩家A可以选的最大值。初始化为0,表示什么都没有选,所以值为0。然后对每个区间(i,j),选取其中的点k扫描其子区间。因为我们要找的是最大的值,所

2015-10-28 17:23:43 415

原创 Light OJ 1422 Halloween Costumes(区间DP)

http://lightoj.com/volume_showproblem.php?problem=1422.题意:给你n天需要穿的衣服的样式,每次可以套着穿衣服,脱掉的衣服就不能再用了(可以再穿),问至少要带多少条衣服才能参加所有宴会。 dp[i][j]表示i到j区间的最小穿衣数量。然后我们通过扫描i到j之间的k点来更新dp[i][j]。当c[k]与c[j]为相同衣服时,那么显然有d

2015-10-28 11:43:45 387

原创 POJ 2955 Brackets(区间DP)

http://poj.org/problem?id=2955.小括号和中括号分别两两匹配。用记忆化搜索扫描区间。左右边界为 l, r。每次dfs,我们扫描l到r的所有中间点,即从l+1到r-1,从而更新dp[l][r]的最大值。转移方程:dp[l][r] = max(dp[l][r], 2 + dfs(l + 1, m - 1) + dfs(m + 1, r))。#include

2015-10-26 23:37:24 411

原创 POJ 1651 Multiplication Puzzle(区间DP)

http://poj.org/problem?id=1651。头尾不动。通过从小到大枚举长度枚举区间,然后扩散到整个区间。dp[i][j]表示从i开始到j的区间的分数最小值。则长度显然从3开始。得到状态转移方程 dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j] + a[i] * a[k] * a[j])。答案为dp[0][n-1]。#in

2015-10-26 21:05:26 344

原创 HDU 2476 String painter(区间DP)

区间DP。http://blog.csdn.net/libin56842/article/details/9708807。这种区间最优解的问题很容易想到区间DP。如果要是记录从s1到s2的状态的话,显然是很麻烦的。要区分某一位置s1和s2是否相等进行分类。当不相等时,从s1转化到s2和从空串转化到s2是没有区别的。所以不妨直接记录从空串转化到s2的次数,再算从s1转化到s2的最优解。#

2015-10-26 16:07:28 370

原创 HDU 5495(置换群)

两个数组a和b,将其看做一个由a到b的置换,那么可以得到若干个环,显然环之间是独立的。不难看出对每个长度大于1的环,一定可以得到一个len-1的LCS。所以答案就是n-长度大于1的循环的个数。#include #include #include #include #include #include #include #include #include #include #i

2015-10-06 17:13:02 406

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除