导弹拦截是一个经典问题:求一个序列的最长不上升子序列,以及求能最少划分成几组不上升子序列。第一问是经典动态规划,第二问直接的方法是最小路径覆盖, 但是二分图匹配的复杂度较高,我们可以将其转化成求最长上升子序列,其最大值即等于不上升子序列的最小划分数。这就涉及到组合数学中偏序集的 Dilworth定理...
分类:
其他好文 时间:
2014-08-26 19:31:46
阅读次数:
273
给你若干个位置和一个起始位置,每次你可以由起始位置到任意一个非起始位置并返回起始位置或者由起始位置到非起始位置再到另一个非起始位置并返回起始位置,每次的代价为距离的平方,求最少代价经过每个位置一次(起始位置除外)#include #include #include #include #include...
分类:
其他好文 时间:
2014-08-26 13:06:36
阅读次数:
168
【题目】
给定一个源串和目标串,能够对源串进行如下操作:
1. 在给定位置上插入一个字符
2. 替换任意字符
3. 删除任意字符
写一个程序,返回最小操作数,使得对源串进行这些操作后等于目标串,源串和目标串的长度都小于2000。
【分析】参考自:点击打开链接
此题常见的思路是动态规划,假如令dp[i][j] 表示源串S[0…i] 和目标串T[0…j] 的最短编...
分类:
其他好文 时间:
2014-08-26 11:37:26
阅读次数:
281
n个怪物站一排让法师的火球攻击,攻击力最主怪造成a伤害,对附近的怪造成b伤害,若怪的血量低于0则死亡,求最少攻击次数并输出每次攻击的目标(不能攻击2边的怪物#include #include #include #include #include #include #include #include ...
分类:
其他好文 时间:
2014-08-26 11:30:45
阅读次数:
206
算是个动态规划,统计和sum[位数][差值]构建个虚拟数组写起来就顺多了 1 import java.util.Scanner; 2 3 public class P1044 4 { 5 private static int save[][] = new int[10][100]; 6 ...
分类:
其他好文 时间:
2014-08-26 02:53:05
阅读次数:
243
1072: 编辑距离
时间限制(普通/Java):1000MS/10000MS 内存限制:65536KByte
总提交: 917 测试通过:275
描述
假设字符串的基本操作仅为:删除一个字符、插入一个字符和将一个字符修改成另一个字符这三种操作。
我们把进行了一次上述三种操作的任意一种操作称为进行了一步字符基本操作。
下面我们定义两个字符...
分类:
其他好文 时间:
2014-08-26 00:30:25
阅读次数:
215
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3805
Machine
Time Limit: 2 Seconds Memory Limit: 65536 KB
In a typical assembly line, machines are connected one b...
分类:
其他好文 时间:
2014-08-25 21:17:04
阅读次数:
296
题目大意:
在一根数轴上有一只机器龟,它能够听从人们给它的指令做出向前走一步(F)和向后转(T)的操作。给出初始操作,你最开始有修改n步指令的权利(每一个指令可以被修改很多次),问在你修改n次之后,海龟离原点的最大距离。
做法:
很直观的想法,尽可能的将T转化为F,也算是一种贪心的做法吧。
我们用dfs(i,j,t,cur),其中i表示当前遍历的命令的序号,j表示从0~i过...
分类:
其他好文 时间:
2014-08-25 17:10:05
阅读次数:
367
思想: 简单的深度优先搜索。
思想: 动态规划:
n = s.length();
Record[i] = 0 , ( i = n || is...
分类:
其他好文 时间:
2014-08-25 02:17:23
阅读次数:
187