摘要: 不是有很多可以说的,记住不能边算边取min Code 记下每个数字所需的火柴数,然后去搜索吧,或者找出上界,枚举两个加数,再判断是否可行。 Code 从下面传上来,等于从上面传下去,原问题就等于从左上角找两条互不相交的路径,简单地是写个dp,f[x0][y0][x1][y1]或者f[dis][x0] 阅读全文
posted @ 2017-02-25 17:17 阿波罗2003 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 很经典的一道状压dp(似乎叫做旅行商问题),用f[i][s]表示在到达点i,已经经过的城市用二进制表示为s,于是方程就很简单了: f[i][s] = min { f[j][s ^ (1 << j)] + dis[j][i]| s & (1 << j) != 0} 然后用记忆化搜索即可,注意方向,因为 阅读全文
posted @ 2017-02-25 15:44 阿波罗2003 阅读(197) 评论(0) 推荐(0) 编辑