博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4198 Quick out of the Harbour(BFS+最小优先队列)
阅读量:5024 次
发布时间:2019-06-12

本文共 1886 字,大约阅读时间需要 6 分钟。

题目:

 

大意:起点S到出口的最短花费。。。。。其中#为障碍物。。。。     '.'的花费为1 。。。@的花费为c+1。。。。c是第三个输入数据

 

师兄说过可以dijstra。。。但是我还没试过。。。。留着以后在试吧。

 

#include 
#include
using namespace std; struct point {
int x, y, v; friend bool operator < (point a, point b) { return a.v > b.v; //重载小于号使得小的先出队列 } }; char g[555][555]; int xx[8] = {
1,0,0,-1}; int yy[8] = {
0,1,-1,0}; int sum; int n, m; int c; int tx, ty; int Bfs(int x, int y)//广搜目的找最短路。 {
point q1, q2; priority_queue
Q; int i; q1.x = x; q1.y = y; q1.v = 1; Q.push(q1); while (!Q.empty()) {
q2 = Q.top(); Q.pop(); g[q2.x][q2.y] = 0; if (q2.x == tx && q2.y == ty)//出口 {
return q2.v; } for (i = 0; i < 8; i++) {
q1.x = q2.x + xx[i]; q1.y = q2.y + yy[i]; if (g[q1.x][q1.y] == '.') {
q1.v = q2.v + 1; } else {
q1.v = q2.v + c; } if (q1.x >=0 && q1.y >=0 && q1.x < n && q1.y < m && g[q1.x][q1.y] && g[q1.x][q1.y] != '#') {
Q.push(q1); g[q1.x][q1.y] = 0; } } } } int main() {
int i, j; int sx,sy; int t; scanf("%d", &t); while (t--) {
scanf("%d%d%d", &n, &m, &c); c++; for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
scanf(" %c" ,&g[i][j]); if (g[i][j] == 'S') {
sx = i, sy = j; } if ((i == 0 || i == n-1 || j == 0 || j == n-1) && g[i][j] != '#') {
tx = i, ty = j; } } } // sum = 1; printf("%d\n", Bfs(sx, sy)); } return 0; }

转载于:https://www.cnblogs.com/qiufeihai/archive/2012/04/03/2431191.html

你可能感兴趣的文章
Feign使用Hystrix无效原因及解决方法
查看>>
Sizeof与Strlen的区别与联系
查看>>
hadoop2.2.0_hbase0.96_zookeeper3.4.5全分布式安装文档下载
查看>>
Flutter 贝塞尔曲线切割
查看>>
golang 的编译安装以及supervisord部署
查看>>
easyui源码翻译1.32--Dialog(对话框窗口)
查看>>
阿里架构师,讲述基于微服务的软件架构模式
查看>>
Eclipse导入maven项目时,Pom.xml文件报错处理方法
查看>>
01、JAVA开发准备
查看>>
asp.net mvc 错误处理 - 自定义报错处理,生成错误日志
查看>>
Linux centos ssh
查看>>
R语言之避免for循环示例
查看>>
[转]jQuery 选择器和dom操作
查看>>
Jenkins+Maven+SVN快速搭建持续集成环境(转)
查看>>
bootstrap 媒体查询
查看>>
杜教筛
查看>>
《Ext JS模板与组件基本知识框架图----模板》
查看>>
txmpp
查看>>
微信开发时调用jssdk,在安卓设备中成功调用;在ios设备中返回错误消息:config fail,无其他具体错误消息,且接口权限显示获取ok,无法调用...
查看>>
【Github教程】史上最全github使用方法:github入门到精通
查看>>