http://acm.timus.ru/problem.aspx?space=1&num=1119

 #include <cstdio>
#include <cstring>
#include <queue>
#include <cmath>
#include <algorithm>
#define maxn 1010
using namespace std; int head[maxn],e,n,m;
int dir[][]={{,-},{,},{,},{-,}};
bool vis[maxn][maxn];
bool visi[maxn][maxn];
double step; struct node
{
int x,y;
double step;
}st,st1,st2; void bfs(node st)
{
queue<node>q;
st.step=0.0;
q.push(st);
memset(visi,false,sizeof(visi));
visi[st.x][st.y]=true;
while(!q.empty())
{
st1=q.front();
q.pop();
if(st1.x==m&&st1.y==n) {step=st1.step;return;}
for(int i=; i<; i++)
{
int xx=st1.x+dir[i][];
int yy=st1.y+dir[i][];
if(xx>=&&xx<=m&&yy>=&&yy<=n&&!visi[xx][yy])
{
st2.step=st1.step+100.0;
visi[xx][yy]=true;
st2.x=xx;
st2.y=yy;
q.push(st2);
}
}
if(vis[st1.x+][st1.y+]&&st1.x+<=m&&st1.y+<=n&&st1.x+>=&&st1.y+>=)
{
vis[st1.x+][st1.y+]=true;
st2.x=st1.x+;
st2.y=st1.y+;
st2.step=st1.step+sqrt()*100.0;
q.push(st2);
}
}
}
int main()
{
int k,a,b;
step=;
scanf("%d%d",&n,&m);
scanf("%d",&k);
memset(vis,false,sizeof(vis));
for(int i=; i<=k; i++)
{
scanf("%d%d",&a,&b);
vis[b][a]=true;
}
st.x=;
st.y=;
bfs(st);
printf("%.0lf\n",step);
return ;
}

ural 1119 Metro的更多相关文章

  1. 递推DP URAL 1119 Metro

    题目传送门 /* 题意:已知起点(1,1),终点(n,m):从一个点水平或垂直走到相邻的点距离+1,还有k个抄近道的对角线+sqrt (2.0): 递推DP:仿照JayYe,处理的很巧妙,学习:) 好 ...

  2. URAL 1119. Metro(BFS)

    点我看题目 题意  : 这个人在左下角,地铁在右上角,由很多格子组成的地图,每一条边都是一条路,每一条边都是100米.还有的可以走对角线,问你从起点到终点最短是多少. 思路 : 其实我想说一下,,,, ...

  3. ural 1119. Metro(动态规划)

    1119. Metro Time limit: 0.5 second Memory limit: 64 MB Many of SKB Kontur programmers like to get to ...

  4. URAL 1119. Metro(DP)

    水题. #include <cstring> #include <cstdio> #include <string> #include <iostream&g ...

  5. URAL DP第一发

    列表: URAL 1225 Flags URAL 1009 K-based Numbers URAL 1119 Metro URAL 1146 Maximum Sum URAL 1203 Scient ...

  6. URAL(DP集)

    这几天扫了一下URAL上面简单的DP 第一题 简单递推 1225. Flags #include <iostream> #include<cstdio> #include< ...

  7. 要back的题目 先立一个flag

    要back的题目 目标是全绿!back一题删一题! acmm7 1003 1004 acmm8 1003 1004 sysu20181013 Stat Origin Title Solved A Gy ...

  8. ural 1272. Non-Yekaterinburg Subway

    1272. Non-Yekaterinburg Subway Time limit: 1.0 secondMemory limit: 64 MB A little town started to co ...

  9. wp已死,metro是罪魁祸首!

    1.这篇文章肯定会有类似这样的评论:“我就是喜欢wp,我就是喜欢metro,我就是软粉“等类似的信仰论者发表的评论. 2.2014年我写过一篇文章,windows phone如何才能在中国翻身? 我现 ...

随机推荐

  1. linux之utime函数解析

    [lingyun@localhost utime]$ ls hello  utime.c  world [lingyun@localhost utime]$ cat utime.c  /******* ...

  2. 转: LRU缓存介绍与实现 (Java)

    引子: 我们平时总会有一个电话本记录所有朋友的电话,但是,如果有朋友经常联系,那些朋友的电话号码不用翻电话本我们也能记住,但是,如果长时间没有联系了,要再次联系那位朋友的时候,我们又不得不求助电话本, ...

  3. Tomcat部署问题及解决方法

    1.gradle构建web时报错:Access restriction: The type JPEGImageEncoder is not accessible due to restriction ...

  4. java cmd常用命令

    熟悉Java的常用命令 面试例题11:使用jar命令. 请使用jar命令,将test文件夹压缩成.jar文件,并简述其压缩包的结构. 考点:对于Java程序员来说,更多情况下是使用集成Java开发工具 ...

  5. 左移运算符<<

    在许多计算机编程语言(例如:C语言.C++语言.Java语言.JavaScript语言,Pascal语言等)中,“<<”代表左移运算符(就相当于'shl').该运算符为双目运算符,结合方向 ...

  6. 【C++深入探索】Copy-and-swap idiom详解和实现安全自我赋值

    分类: C/C++2012-08-30 21:40 2017人阅读 评论(2) 收藏 举报 任何管理某资源的类比如智能指针需要遵循一个规则(The Rule of Three): 如果你需要显式地声明 ...

  7. Java基础知识强化28:Scanner类之Scanner类的概述

    1.Scanner概述:         JDK5以后用于获取用户的键盘输入 2.Scanner的构造方法:         public Scanner (InputStream  source) ...

  8. Linux下multipath多路径配置

    一.什么是多路径 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系.而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存 储通过了光纤交换机或者多块网卡及IP ...

  9. 内存泄露 Memory Leaks

    什么是内存泄露 内存管理一直是Java 所鼓吹的强大优点.开发者只需要简单地创建对象,而Java的垃圾收集器将会自动管理内存空间的分配和释放. 但在很多情况下,事情并不那么简单,在 Java程序中总是 ...

  10. Windows Media Player Plus

    Windows Media Player Plus 是一款 Windows Media Player 的插件,提供很多实用功能,Mark 一下.