摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1372题意:求一匹马从1个位置走到一个位置所需要的步数,这匹马是走'日'字型的(类似中国象棋的马)输入:a1 b2 a表示第一行, 1表示第一列以此类推 行的范围为a~h 列的范围为1~8输出:To get from (起点) to (终点) takes(多少步) knight moves.简单的BFS(),连障碍都没有.只要知道马的前进方法就没什么难度.主要问题还是理解题意啊 囧View Code 1 #include "iostream" 2 #include &quo 阅读全文
posted @ 2012-09-02 19:52 zx雄 阅读(268) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4006题意:题目会给出n个数,求第k大的数.输入:第一行输入两个整数n 和 k接下来有n行数据,输入的数据分为两种.输入I 和 一个数字x 表示写入数字x输入Q 表示进行一次询问 询问当前第k大的数是多少并输出这个数.开始使用sort进行排序,提交后会超时.后来改用优先队列.声明一个结构体1 struct Node2 {3 int x;4 friend bool operator < (Node a,Node b)5 {6 return a.x > b.x;7 ... 阅读全文
posted @ 2012-09-02 19:44 zx雄 阅读(1016) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2473题意:输入 M 数字1 数字2 表示数字1和数字2是同一个集合. S 数字1 表示数字1需要从集合中删除.求有几个集合用并查集实现.普通的并查集并不能实现删除的功能.所以需要使用 "代理".为了好理解先用两个数组.5 6M 0 1M 1 2M 1 3S 1M 1 2S 3未进行删除前.进行删除后删除节点并不是真的删除这个节点,而是把要删除的节点更换为另一个节点.以后搜索他也是搜索另一个节点.这样不会破坏并查集的结构又实现了删除.在查找几个集合时要用used数组标记而不是判断 fath 阅读全文
posted @ 2012-09-02 19:37 zx雄 阅读(239) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1180题意:给一幅图,图中有 'S' 'T' '|' '-' '*' '.' 几种符号, '*'表示墙 '.'表示路 'S' 表示 起点. 'T'表示 终点 '|'或者'-' 表示楼梯 楼梯每过一分钟就会改变一次方向(每走一格一分钟),不能停留在楼梯上且经过楼梯不需要时间. 求起点到终点最少需要多少时间.输入:先输入x 阅读全文
posted @ 2012-09-02 13:49 zx雄 阅读(524) 评论(1) 推荐(0) 编辑