摘要:
定义如下规则序列(字符串):1.空序列是规则序列;2.如果S是规则序列,那么(S)和[S]也是规则序列;3.如果A和B都是规则序列,那么AB也是规则序列。 例如,下面的字符串都是规则序列:(),[],(()),([]),()[],()[()] 而以下几个则不是:(,[,],)(,()),([()现在,给你一些由‘(’,‘)’,‘[’,‘]’构成的序列,你要做的,是找出一个最短规则序列,使得给你的那个序列是你给出的规则序列的子列。(对于序列a1,a2,…, 和序列bl,b2,…, ,如果存在一组下标1≤i1<i2<…< ≤m,使得aj= 对一切1≤j≤n成立,那么a1,a2…, 阅读全文
摘要:
一个公司有三个移动服务员。如果某个地方有一个请求,某个员工必须赶到那个地方去(那个地方没有其他员工),某一时刻只有一个员工能移动。被请求后,他才能移动,不允许在同样的位置出现两个员工。从p到q移动一个员工,需要花费c(p,q)。这个函数没有必要对称,但是c(p,p)=0。公司必须满足所有的请求。目标是最小化公司花费。具体解析我就很不客气的贴上tyvj上的解答了:一个很显然的想法.用f[i,x1,x2,x3]表示第i时刻三个人的位置是x1,x2,x3(并不是三个人分别在).用p[i]表示i时刻的请求,用map[i,j]表示把人从位置i感到位置j的代价.则可以得到一个很显然递推式:f[i,p[i] 阅读全文