摘要: http://poj.org/problem?id=1724题意:Bob现在有的钱数为k,他想从城市1到城市n,给出m条连接两个城市的有向边,并且给出路的长度w,和经过这条路要交的钱数c。问Bob在花的过路费不超过k的前提下能到达城市n的最短路径为多长。思路:才开始我想spfa来做,开两个数组dis记录距离最短disw记录话费最小,在松弛的时候进行距离与费用的限制来进行,可是发现当某一个点被多个点更新时,比如i点被更新为[7,12] [9,9] [12,7]那我们选择哪一个呢?如果我们选择路径短的话,[7,12] 可是可能时间总和就会超出k,如果我们选择费用小的话[12,7] 可是路径的长度可 阅读全文
posted @ 2012-08-10 22:09 E_star 阅读(214) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3411题意:给出 n 个节点 m 条边,求从 1 到 n 的最小花费。有两种支付方式:1> 预先在城市 Ci (必须先到过该城市)支付费用 Pi ;2> 在终点 Bi支付费用 Ri;思路:这里给定的节点,边的数量都<=10爆搜没问题,关键注意一下几点:1> 边有多条,不能用邻接矩阵计算,而要用邻接表(存在重边)。2> Pi 始终小于等于对应的 Ri。3>每个点可以走多次,边也可以走多次。这里正常的搜索写法不会重复走一个点而这里当遇到需要提前支付的路并且支付点还没有访问过就必须返回去访问支付点,这里我们每次 阅读全文
posted @ 2012-08-10 20:18 E_star 阅读(216) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1699DFS+剪枝解法http://www.cnblogs.com/E-star/archive/2012/08/10/2631584.html题意:现在给出几个基因片段,要求你将它们排列成一个最短的序列,序列中使用了所有的基因片段,而且不能翻转基因。,这些基因可以重叠,只要一个基因的后段和一个基因的前端一样,就可以将其重叠链接在一起。现问将这些 基因全部排列出来,最短的长度为多少。思路:将n个基因片段的所有状态压缩,dp[i][j]表示状态i以j基因片段结尾的最短长度,则有dp[i][j] = min(dp[i][j],dp[tmp][k 阅读全文
posted @ 2012-08-10 18:14 E_star 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 官方解题报告http://page.renren.com/601081183/note/865145486?null&ref=minifeed&sfet=2011&fin=0&ff_id=601081183&feed=page_reblog&tagid=1981432999&statID=page_601081183_2&level=21001 hdu 4350Cardhttp://acm.hdu.edu.cn/showproblem.php?pid=4350题意:给定52张牌,按顺序排列着,给出操作每次讲下表为[l,r]的牌一道 阅读全文
posted @ 2012-08-10 11:55 E_star 阅读(271) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1699题意:现在给出几个基因片段,要求你将它们排列成一个最短的序列,序列中使用了所有的基因片段,而且不能翻转基因。,这些基因可以重叠,只要一个基因的后段和一个基因的前端一样,就可以将其重叠链接在一起。现问将这些 基因全部排列出来,最短的长度为多少。思路:给出的数据量比较小相信爆搜+剪枝是可以的。首先是要预处理一下每两个基因片段合并时能够增加的长度,便于以后dfs时,直接求和就可以。View Code #include<iostream>#include<cstdio>#include<cstring>#i 阅读全文
posted @ 2012-08-10 11:40 E_star 阅读(247) 评论(0) 推荐(0) 编辑