显示标签为“BFS”的博文。显示所有博文
显示标签为“BFS”的博文。显示所有博文

2008年7月30日星期三

ZJU/ZOJ 2013 Labyrinth 解题报告

题目大意是在一个矩阵中寻找最长的连续'.’序列的长度。任意两个'.’之间必定存在恰好一条路径。

由“任意两个'.’之间必定存在恰好一条路径”可知这幅图可以转化为树的形式,而题目所求极为树中的最长路。任取一个节点作为根,对树进行一次BFS遍历找到距离其最远的点,再从这个点开始对图进行一次BFS遍历,距离其最远的点与其之间的距离即为树的最长路。或者用TreeDP的形式求其最长的两颗子树的长度之和亦可。

3014581 2008-07-30 20:49:21 Accepted 2013 FPC 00:00.94 6268K IwfWcf@LZOI

2008年7月22日星期二

ZJU/ZOJ 1558 Euro Efficiency 解题报告

题目大意是求用给出的六种面值的硬币组成1到100元所需的最少硬币数,组成的方法可加可减。

用BFS或DP来做都可以,BFS的状态数较少,时间复杂度要低一些。做的时候主要注意边界范围应该是-99到199而不只是1到100,第一次因为忽略了边界范围WA了一次。

2994980 2008-07-22 00:00:18 Accepted 1558 FPC 00:00.00 404K IwfWcf@LZOI

2008年7月21日星期一

ZJU/ZOJ 1136 Multiple 解题报告

题目大意是给出n(0<=n<=4999)和m个十进制位数,输出用这m个十进制位数组成的最小的n的倍数,如果无解则输出0。

模型是非常经典的BFS。对m个数排序后按从小到大的顺序添数就是了。由同余定理可知状态最多只有5000个,且每个状态只需记录余数信息即可,由于n的倍数可能非常大我使用了ansistring来存储每个状态对应的实际输出结果。

2993287 2008-07-21 12:19:51 Accepted 1136 FPC 00:00.37 444K IwfWcf@LZOI

 
Creative Commons License
除非另有声明,本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 许可协议授权。