1321. Robot
来源:互联网 发布:ummy mac 编辑:程序博客网 时间:2024/06/08 20:06
TAG 最短路
把格按上下左右的连通性转换成图,即格子为顶点,边 (a,b) 的权值为格子b的花费。再用普通的 Dijkstra 算法就可以直接解。
不过这里顶点最多n=10000个,普通的 Dijkstra 算法是O(n^2) 效率太低了。可以用堆优化。
因为在 Dijkstra 处理时候,有3种节点
- 已检查的节点。(升序)
- 候选节点。
- 未处理节点。
我们每次需要从2中选出路径最短的节点进行检查,然后更新2和3中的路径值,把部分3加到2。普通的遍历找最小值需要O(n),显然遍历的次数很多,所以可以用堆优化。
这里有一点比较特殊,就是到达同一个格的花费都是一样的,所以不需要更新节点路径长度值(我们已按升序检查节点)。
程序中我是用priority_queue实现的,0.02 sec308 KB
效率还不错。。能排在status第一页
贴源码:
- 1321. Robot
- 1321. Robot
- 1321. Robot
- Sicily 1321. Robot
- 1321. Robot (dijkstra)
- SOJ 1321. Robot
- sicily 1321. Robot
- sicily 1321.Robot
- Sicily 1321. Robot
- sicily 1321. Robot
- Robot
- robot
- robot
- Robot
- Robot
- 第十六周:[Sicily]1321. Robot
- Sicily 1321. Robot (不一样的宽搜)
- Mobile Robot
- 山之思
- arm-linux-gcc使用小记(基于飞凌OK2440III开发板)
- x64系统的判断和x64下文件和注册表访问的重定向(2)
- FL2440在linux平台下minicom的使用 串口收发文件
- 使用资源文件应该注意的地方
- 1321. Robot
- 地形格子如果用triangle strip的话,顶点索引的设置方法 分享
- 如何与人交往
- 关于boost和ACE线程库的比较
- 如何得到幸福?很简单
- RAC 卸载 说明
- Write some thing down
- Hibernate高级实体关联映射之单值的实体关联(共享的主键关联)
- 关于面向对象设计的一些思考