在洛谷上被卡了一个点开了O2才过= =

bfs即可,为方便存储,把所有坐标+500

#include<iostream>
#include<cstdio>
#include<queue>
using namespace std;
const int N=1005,dx[]={-1,1,0,0},dy[]={0,0,-1,1};
int n,sx,sy;
bool a[N][N],v[N][N];
struct qwe
{
int x,y,b;
qwe(int X=0,int Y=0,int B=0)
{
x=X,y=Y,b=B;
}
};
int read()
{
int r=0,f=1;
char p=getchar();
while(p>'9'||p<'0')
{
if(p=='-')
f=-1;
p=getchar();
}
while(p>='0'&&p<='9')
{
r=r*10+p-48;
p=getchar();
}
return r*f;
}
bool ok(int x,int y)
{
return x>=0&&y>=0&&x<=1000&&y<=1000&&!v[x][y]&&!a[x][y];
}
int main()
{
sx=read()+500,sy=read()+500,n=read();
for(int i=1;i<=n;i++)
{
int x=read()+500,y=read()+500;
a[x][y]=1;
}
queue<qwe>q;
q.push(qwe(500,500,0));
v[500][500]=1;
while(!q.empty())
{
int x=q.front().x,y=q.front().y,b=q.front().b;
if(x==sx&&y==sy)
{
printf("%d\n",b);
break;
}
q.pop();
v[x][y]=0;
for(int i=0;i<4;i++)
if(ok(x+dx[i],y+dy[i]))
q.push(qwe(x+dx[i],y+dy[i],b+1)),v[x+dx[i]][y+dy[i]]=1;
}
return 0;
}

bzoj 1627: [Usaco2007 Dec]穿越泥地【bfs】的更多相关文章

  1. BZOJ 1627: [Usaco2007 Dec]穿越泥地( BFS )

    BFS... --------------------------------------------------------------------------------------- #incl ...

  2. 1627: [Usaco2007 Dec]穿越泥地

    1627: [Usaco2007 Dec]穿越泥地 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 504  Solved: 325[Submit][Sta ...

  3. 【BZOJ】1627: [Usaco2007 Dec]穿越泥地(bfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1627 裸bfs不解释.. #include <cstdio> #include < ...

  4. [Usaco2007 Dec]穿越泥地[bfs][水]

    Description 清早6:00,Farmer John就离开了他的屋子,开始了他的例行工作:为贝茜挤奶.前一天晚上,整个农场刚经受过一场瓢泼大雨的洗礼,于是不难想见,FJ 现在面对的是一大片泥泞 ...

  5. BZOJ1627: [Usaco2007 Dec]穿越泥地

    1627: [Usaco2007 Dec]穿越泥地 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 478  Solved: 303[Submit][Sta ...

  6. BZOJ 1692: [Usaco2007 Dec]队列变换( 贪心 )

    数据 n <= 30000 , 然后 O( n² ) 的贪心也过了..... USACO 数据是有多弱啊 = = ( ps : BZOJ 1640 和此题一模一样 , 双倍经验 ) ------ ...

  7. BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]

    1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1383  Solved: 582[Submit][St ...

  8. BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]

    1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 786  Solved: 391[Submit][S ...

  9. BZOJ 1625: [Usaco2007 Dec]宝石手镯( dp )

    最裸的01背包.... --------------------------------------------------------------------- #include<cstdio ...

随机推荐

  1. 关于自定义checkbox-radio标签的样式的方法(label 和 background-position理解)

    label label标签有一个很好的作用就是扩大表单控件元素的点击区域. 一般有两种方法可以达到效果:(1)使用label标签包裹表单控件(2)设置label标签的for属性和表单的id属性一致 这 ...

  2. 【03】emmet系列之CSS语法

    [01]emmet系列之基础介绍 [02]emmet系列之HTML语法 [03]emmet系列之CSS语法 [04]emmet系列之编辑器 [05]emmet系列之各种缩写   单位: 有几个常用值别 ...

  3. Leetcode 150.逆波兰表达式求值

    逆波兰表达式求值 根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总 ...

  4. htmlspecialschars与htmlentities的区别

    根据php手册,htmlentities与htmlspecialchars功能几乎是一模一样.唯一的差别就是,对于无效的代码单元序列(通俗讲就是不认识的编码)是否进行编码.htmlentities会进 ...

  5. ssh远程登录

    ssh root@192.168.124.128 密钥登录: 1).ssh-keygen 生成公钥和私钥 [root@rhel5 ~]# ssh-keygen -t rsa Generating pu ...

  6. how to read openstack code: Neutron architecture

    今天这一章节非常重要.我们知道neutron是一个非常复杂的系统,由很多组件构成.研究这样一个复杂的系统,正确的顺序应该是现在宏观上对其整体结构有所了解,然后再由针对性的对其组件进行深入了解.本章要做 ...

  7. Dell PowerEdgeServerT110II USB Boot更新

    可引导USB设备更新Dell PowerEdge服务器 当显示Boot Options(“启动选项”)时,选择option 1(选项 1)以开始固件更新. 现在正在加载的Linux发行版本 然后固件更 ...

  8. web开发常见性能优化方式

    经常使用的高并发. 高性能web,数据库server.  1.html 静态化 : 如新闻频道更新的非常快,都是通过cms静态生成(门户,信息公布类型的站点,交互性高的如猫扑的大杂烩也是静态化,实时静 ...

  9. [Maid] Write Tasks in Markdown with Maid

    Maid enables you to write your tasks in Markdown. Create a maidfile.md or a README.mdthen add Header ...

  10. 看opengl写代码(7) 使用混合数组(glInterLeavedArrays)

    glInterLeavedArrays 函数  有 三个 參数 : mode ,stride,pointer. mode :指示 开启 哪些 顶点数组,以及 顶点数组 使用的 数据类型. 其余的 顶点 ...