就一个最短路,并且边长都是1,所以每个点只搜一次。

 /**************************************************************
Problem: 3299
User: MT_Chan
Language: C++
Result: Accepted
Time:72 ms
Memory:2420 kb
****************************************************************/ #include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
#define Maxn 310
#define INF 0xfffffff int kx[];
int a[Maxn][Maxn],tr[Maxn*Maxn];
char s[Maxn]; int dis[Maxn*Maxn],st,ed;
int n,m; queue<int > q;
void spfa()
{
while(!q.empty()) q.pop();
memset(dis,-,sizeof(dis));
q.push(st);dis[st]=;
while(!q.empty())
{
int x=q.front();
int nx=(x-)/m+,ny=x-(nx-)*m;
if(ny>&&tr[x-]!=-&&dis[tr[x-]]==-)
{
dis[tr[x-]]=dis[x]+;
if(tr[x-]==ed) break;
q.push(tr[x-]);
}
if(ny<m&&tr[x+]!=-&&dis[tr[x+]]==-)
{
dis[tr[x+]]=dis[x]+;
if(tr[x+]==ed) break;
q.push(tr[x+]);
}
if(nx>&&tr[x-m]!=-&&dis[tr[x-m]]==-)
{
dis[tr[x-m]]=dis[x]+;
if(tr[x-m]==ed) break;
q.push(tr[x-m]);
}
if(nx<n&&tr[x+m]!=-&&dis[tr[x+m]]==-)
{
dis[tr[x+m]]=dis[x]+;
if(tr[x+m]==ed) break;
q.push(tr[x+m]);
}
q.pop();
}
printf("%d\n",dis[ed]);
} int main()
{
scanf("%d%d",&n,&m);
memset(kx,-,sizeof(kx));
memset(tr,,sizeof(tr));
for(int i=;i<=n;i++)
{
scanf("%s",s);
for(int j=;j<m;j++)
{
int now=(i-)*m+j+;
if(s[j]=='@') st=now;
else if(s[j]=='=') ed=now;
else if(s[j]=='#') tr[now]=-;
else if(s[j]>='A'&&s[j]<='Z')
{
int kk=s[j]-'A'+;
if(kx[kk]==-) kx[kk]=now;
else tr[now]=kx[kk],tr[kx[kk]]=now;
}
}
}
for(int i=;i<=n*m;i++) if(tr[i]==) tr[i]=i;
spfa();
return ;
}

【bzoj 3299】 [USACO2011 Open]Corn Maze玉米迷宫(最短路)的更多相关文章

  1. BZOJ 3299: [USACO2011 Open]Corn Maze玉米迷宫(BFS)

    水题一道却交了4次QAQ,真是蒟蒻QAQ CODE: #include<cstdio>#include<iostream>#include<cstring>#inc ...

  2. 3299: [USACO2011 Open]Corn Maze玉米迷宫

    3299: [USACO2011 Open]Corn Maze玉米迷宫 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 137  Solved: 59[ ...

  3. 【BZOJ】3299: [USACO2011 Open]Corn Maze玉米迷宫(bfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3299 映射一下传送门即可.. #include <cstdio> #include &l ...

  4. bzoj3299 [USACO2011 Open]Corn Maze玉米迷宫

    Description 今年秋天,约翰带着奶牛们去玩玉米迷宫.迷宫可分成NxM个格子,有些格子种了玉 米,种宥玉米的格子无法通行.  迷宫的四条边界上都是种了玉米的格子,其屮只有一个格子 没种,那就是 ...

  5. P1825 [USACO11OPEN]玉米田迷宫Corn Maze

    题目描述 This past fall, Farmer John took the cows to visit a corn maze. But this wasn't just any corn m ...

  6. 洛谷——P1825 [USACO11OPEN]玉米田迷宫Corn Maze

    P1825 [USACO11OPEN]玉米田迷宫Corn Maze 题目描述 This past fall, Farmer John took the cows to visit a corn maz ...

  7. 洛谷—— P1825 [USACO11OPEN]玉米田迷宫Corn Maze

    https://www.luogu.org/problem/show?pid=1825 题目描述 This past fall, Farmer John took the cows to visit ...

  8. 洛谷 P1825 [USACO11OPEN]玉米田迷宫Corn Maze

    P1825 [USACO11OPEN]玉米田迷宫Corn Maze 题目描述 This past fall, Farmer John took the cows to visit a corn maz ...

  9. [USACO11OPEN]玉米田迷宫Corn Maze

    题目描述 This past fall, Farmer John took the cows to visit a corn maze. But this wasn't just any corn m ...

随机推荐

  1. nyoj 202 红黑树

    红黑树 时间限制:3000 ms  |            内存限制:65535 KB 难度:3   描述 什么是红黑树呢?顾名思义,跟枣树类似,红黑树是一种叶子是黑色果子是红色的树... 当然,这 ...

  2. 在网页中添加分享到微信、QQ、微博

    参考地址:http://www.bshare.cn/help/installAction 在上面的地址中: 1.可选择分享到的位置,如QQ.微信.微博等 2.按钮的样式.悬浮或者以横幅的方式自己找位置 ...

  3. postgresql行转列并拼接字符串

    有这样一张表: ; id |   kw   ----+--------  1 | big  1 | hello  2 | oracle  2 | small  2 | apple  3 | shit( ...

  4. 500 OOPS: cannot change directory:/home/test

    问题:  以root   从远程客户端 登录 FTP  一直密码错误.  发现不能以root 登录, 需要创建其它的用户. 创建一个test 用户后(如下): useradd test; passwd ...

  5. MVVM学习笔记

    MVVM学习笔记 1.MVVM的简介 MVVM模式是Model-View-ViewModel模式的简称,也就是由模型(Model).视图(View).视图模型(ViewModel),其目的是为了实现将 ...

  6. App.Config 在windows 服务中的应用问题

    今天使用Windows服务 打包是使用的 Installsheild Limited Edition 2012 制作好后发现 运行安装包的时候 一直报错 后来发现ConfigurationManage ...

  7. Flask,HelloWorld

    Flask,HelloWorld # -*- coding:utf-8 -*- ''' Created on 2015年10月19日 ''' from flask import Flask app = ...

  8. TFTPD32, 3CDaemon, FlashFxp

    TFTPD32, 3CDaemon, FlashFxp ——各种网络传输下载工具简介—— 一.将3CDaemon.exe作为TFTP服务端,开发板作为TFTP客户端 1.如上图所示,设置好3CDaem ...

  9. devenv compile errors collection

    任务:使用 devenv commnd line 编译 VS 2010 工程. 使用 devenv 编译工程,要保证工程所需的 VC++目录 (VC++ Directories) 设置正确才能编译成功 ...

  10. Android SDK镜像

    北京化工大学镜像站 http://ubuntu.buct.edu.cn/ 大连东软信息学院 http://mirrors.neusoft.edu.cn/ 中科院开源软件协会 http://mirror ...