题意:

就是公主要逃跑,士兵要抓公主,问你能不能逃跑哇;

思路:

就是终点搞成起点,然后BFS一下就好了,最后枚举一下出口到公主的距离是不是<所有的到士兵的距离;

#include <bits/stdc++.h>
using namespace std;
typedef long long LL; const int N=2e2+10; struct asd{
int x,y;
};
int dx[4]={0,0,-1,1};
int dy[4]={1,-1,0,0};
char s[N][N];
int step[N][N];
int n,m;
int sx,sy;
queue<asd>q; void init()
{
while(!q.empty())
q.pop();
memset(step,-1,sizeof(step));
} bool Judge(int x,int y)
{
if(x<0||y<0||x>=n||y>=m)
return 0;
if(s[x][y]=='#')
return 0;
return 1;
} void bfs()
{
init();
asd now,next;
now.x=sx;
now.y=sy;
step[now.x][now.y]=0;
q.push(now);
while(!q.empty())
{
now=q.front();
q.pop();
// printf("%d %d\n",now.x,now.y);
for(int i=0;i<4;i++)
{
int x=now.x+dx[i];
int y=now.y+dy[i];
if(Judge(x,y))
{
if(step[x][y]==-1)
{
step[x][y]=step[now.x][now.y]+1;
next.x=x;
next.y=y;
q.push(next);
}
}
}
}
int temp1;
int temp2=0x3f3f3f3f;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(s[i][j]=='@')
{
temp1=step[i][j];
}
if(s[i][j]=='$'&&step[i][j]!=-1)
{
temp2=min(temp2,step[i][j]);
}
}
}
if(temp1<temp2)
puts("Yes");
else
puts("No");
} int main()
{
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
scanf("%s",s[i]);
int f=0; for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(s[i][j]=='%')
{
sx=i;
sy=j;
f=1;
break;
}
}
if(f)
break;
}
bfs();
return 0;
}

JAG Practice Contest for ACM-ICPC Asia Regional 2016B题【BFS】的更多相关文章

  1. hduoj 4710 Balls Rearrangement 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4710 Balls Rearrangement Time Limit: 6000/3000 MS (Java/Ot ...

  2. hduoj 4708 Rotation Lock Puzzle 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4708 Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/O ...

  3. hduoj 4715 Difference Between Primes 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4715 Difference Between Primes Time Limit: 2000/1000 MS (J ...

  4. hduoj 4712 Hamming Distance 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4712 Hamming Distance Time Limit: 6000/3000 MS (Java/Other ...

  5. hduoj 4706 Herding 2013 ACM/ICPC Asia Regional Online —— Warmup

    hduoj 4706 Children's Day 2013 ACM/ICPC Asia Regional Online —— Warmup Herding Time Limit: 2000/1000 ...

  6. hduoj 4707 Pet 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4707 Pet Time Limit: 4000/2000 MS (Java/Others)    Memory ...

  7. hduoj 4706 Children&#39;s Day 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4706 Children's Day Time Limit: 2000/1000 MS (Java/Others) ...

  8. 2016 ACM/ICPC Asia Regional Shenyang Online 1003/HDU 5894 数学/组合数/逆元

    hannnnah_j’s Biological Test Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K ...

  9. 2016 ACM/ICPC Asia Regional Qingdao Online 1001/HDU5878 打表二分

    I Count Two Three Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  10. 2016 ACM/ICPC Asia Regional Shenyang Online 1009/HDU 5900 区间dp

    QSC and Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

随机推荐

  1. 一致性Hash简单介绍和使用

    背景: 一致性Hash用于分布式缓存系统,将Key值映射到详细机器Ip上,而且添加和删除1台机器的数据移动量较小,对现网影响较小 实现: 1 Hash环:将节点的Hash值映射到一个Hash环中.每一 ...

  2. HBase GC日志

    HBase依靠ZooKeeper来感知集群成员及其存活性.假设一个server暂停了非常长时间,它将无法给ZooKeeper quorum发送心跳信息,其他server会觉得这台server已死亡.这 ...

  3. crazyflie2.0 RCC时钟知识

    因为眼下手里仅仅有16MHZ的2520封装的贴片晶振,8MHZ这样的封装做不到这么小,所以就先用16MHZ,这样我们就须要改动程序相关的RCC时钟: 1,stm32f4xx.h #define HSE ...

  4. 九度OJ 1127:简单密码 (翻译)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1218 解决:721 题目描述: Julius Caesar曾经使用过一种很简单的密码. 对于明文中的每个字符,将它用它字母表中后5位对应的 ...

  5. cmake中的变量和命令的大小写

    1 cmake中要特别注意命令和变量的大小写 2 cmake的内置命令是不区分大小写的 3 cmake内置变量是区分大小写的,或者干脆就说,cmake的所有变量都是区分大小写的 这就是变量和命令的不同 ...

  6. UIBezierPath(转)

    @import url(/css/cuteeditor.css); @import url(/css/cuteeditor.css); @import url(http://i.cnblogs.com ...

  7. Gym - 100187J J - Deck Shuffling —— dfs

    题目链接:http://codeforces.com/gym/100187/problem/J 题目链接:问通过洗牌器,能否将编号为x的牌子转移到第一个位置? 根据 洗牌器,我们可以知道原本在第i位置 ...

  8. SDK Manager中勾选项

    运行SDK Manager 勾选对应版本的SDK,从这里基本可以知道一个Android版本对应着一个版本的API. 其中每个包都有这么几个文件: Documentation for Android S ...

  9. 如何查看智能手机的IP地址

      1.  外网IP IP地址可简单分为两类.外网IP或称公网IP是用来在Internet上唯一标识你的设备的.如果你通过GPRS或者3G技术接入互联网的话(通过运营商网络),那么你也可以通过下面的方 ...

  10. Centos下Docker安装与使用的相关命令

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2 systemctl docker status yum-config- ...