P1746 离开中山路

题目背景

《爱与愁的故事第三弹·shopping》最终章。

题目描述

爱与愁大神买完东西后,打算坐车离开中山路。现在爱与愁大神在x1,y1处,车站在x2,y2处。现在给出一个n×n(n<=1000)的地图,0表示马路,1表示店铺(不能从店铺穿过),爱与愁大神只能垂直或水平着在马路上行进。爱与愁大神为了节省时间,他要求最短到达目的地距离(a[i][j]距离为1)。你能帮他解决吗?

输入输出格式

输入格式:

第1行:一个数 n

第2行~第n+1行:整个地图描述(0表示马路,1表示店铺,注意两个数之间没有空格)

第n+2行:四个数 x1,y1,x2,y2

输出格式:

只有1行:最短到达目的地距离

输入输出样例

输入样例#1:

3
001
101
100
1 1 3 3
输出样例#1:

4

说明

20%数据:n<=100

100%数据:n<=1000

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define N 1200
using namespace std;
char ch;
bool vis[N][N];
int n,sx,sy,ex,ey,ans;
]={,,,-},yy[]={,-,,};
int read()
{
    ,f=; char ch=getchar();
    ') ch=getchar();
    +ch-'; ch=getchar();}
    return x*f;
}
void dfs(int x,int y,int s)
{
    if(x==ex&&y==ey)
    {
        ans=min(ans,s);
        return ;
    }
    ||y<||x>n||y>n||vis[x][y]) return ;
    vis[x][y]=true;++s;
    ;i<;i++)
    {
        int fx=x+xx[i],fy=y+yy[i];
        dfs(fx,fy,s);
    }
    vis[x][y]=false;
}
int main()
{
    n=read();
    ;i<=n;i++)
     ;j<=n;j++)
     {
         cin>>ch;
         ') vis[i][j]=true;
      }
    sx=read(),sy=read(),ex=read(),ey=read();
    ans=);
    printf("%d",ans);
    ;
}

10分超时dfs

迷宫问题最好使用bfs,因为dfs可能会T的很惨、、

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 2200
using namespace std;
char ch;
bool vis[N][N];
]={,,,-},yy[]={,-,,};
],d[N][N];
int read()
{
    ,f=; char ch=getchar();
    ') ch=getchar();
    +ch-'; ch=getchar();}
    return x*f;
}
int main()
{
    n=read();
    ;i<=n;i++)
     ;j<=n;j++)
     {
         cin>>ch;
         ') vis[i][j]=true;
      }
    sx=read(),sy=read(),ex=read(),ey=read();
    memset(d,;
    q[tail][]=sx,q[tail][]=sy,++tail;
    while(head<tail)
    {
        ],y=q[head][];
        ++head;
        ;}
        ;i<;i++)
        {
            int fx=x+xx[i],fy=y+yy[i];
            ||fx>n||fy>n) continue;
            ))
             d[fx][fy]=d[x][y]+,q[tail][]=fx,q[tail][]=fy,++tail;
        }
    }
}

洛谷——P1746 离开中山路的更多相关文章

  1. 洛谷 P1746 离开中山路

    P1746 离开中山路 题目背景 <爱与愁的故事第三弹·shopping>最终章. 题目描述 爱与愁大神买完东西后,打算坐车离开中山路.现在爱与愁大神在x1,y1处,车站在x2,y2处.现 ...

  2. 洛谷P1746 离开中山路

    https://www.luogu.org/problemnew/show/P1746 思路:用广搜从起点开始,遍历所有可达的点,再往下遍历直到到达终点,所以能保证得到的结果一定是最优解 #inclu ...

  3. 洛谷评测机BUG(应该是)

    此问题由洛谷p1746引出(之前出过类似问题没在意) 传送门 以下是两个差不多的程序,(只有main函数中的输入不同,第一个程序迷之WA,第二个程序AC) #include <bits/stdc ...

  4. 洛谷2583 地铁间谍 (UVa1025A Spy in the Metro)

    洛谷2583 地铁间谍(UVa1025A Spy in the Metro) 本题地址:http://www.luogu.org/problem/show?pid=2583 题目描述 特工玛利亚被送到 ...

  5. 洛谷P1783 海滩防御 分析+题解代码

    洛谷P1783 海滩防御 分析+题解代码 题目描述: WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和 ...

  6. 洛谷 P2802 回家

    题目链接 https://www.luogu.org/problemnew/show/P2802 题目描述 小H在一个划分成了n*m个方格的长方形封锁线上. 每次他能向上下左右四个方向移动一格(当然小 ...

  7. 洛谷P1342 请柬(SPFA)

    To 洛谷.1342 请柬 题目描述 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计 ...

  8. 洛谷P2982 [USACO10FEB]慢下来Slowing down(线段树 DFS序 区间增减 单点查询)

    To 洛谷.2982 慢下来Slowing down 题目描述 Every day each of Farmer John's N (1 <= N <= 100,000) cows con ...

  9. 洛谷 P3956 棋盘 解题报告

    P3956 棋盘 题目描述 有一个\(m×m\)的棋盘,棋盘上每一个格子可能是红色.黄色或没有任何颜色的.你现在要从棋盘的最左上角走到棋盘的最右下角. 任何一个时刻,你所站在的位置必须是有颜色的(不能 ...

随机推荐

  1. 如何让升级时AppleHDA不再折腾

    ---前提--- 1. 你得用 Clover 引导 (......) 2. 开启 kernelcache (开了也能 inject kext,还能patch kext,速度又快,为啥不开) 3. 你的 ...

  2. mysqldump指令说明

    3种形式mysqldump [OPTIONS] database [tables]mysqldump [OPTIONS] -B | --databases [OPTIONS] DB1 [DB2 DB3 ...

  3. linux各种终端类型的区别和概念

    1 pty(虚拟终端或伪终端): 当我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty). 2 tty(终端设备的统称):tty一词源 ...

  4. day18-python之迭代器和生成器

    1.文件处理模式b模式 #!/usr/bin/env python # -*- coding:utf-8 -*- # f=open('test.py','rb',encoding='utf-8') # ...

  5. (原) 剑指offer--之数值的整数次方

    题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方.   初次看题觉得这题好简单,直接用库函数power()不就行了,仔细想了想,万 ...

  6. JavaScript括号中什么什么不加引号什么时候加引号?

    *****我的QQ号:1539832180.欢迎一起讨论学习.***** 1.如果是你定义的变量,不能加引号. 因为在大多数语言里面,单引号(或双引号)里面的内容表示的都是字符串. 2.如果是你定义的 ...

  7. 二丶人生苦短,我用python【第二篇】

    1 编码 python解释器在加载 .py 文件中的代码时,对内容默认进行ascill编码,因此存在中文会报错,所以需要告诉python解释器,用什么编码来执行源代码.) ASCII码,主要用于显示现 ...

  8. Linux下dpkg的用法

    转自:http://blog.csdn.net/fireblue1990/article/details/52627952 dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理 ...

  9. [android开发篇]权限分类:正常权限和危险权限

    https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous 系统权限 本文内容 安全架构 ...

  10. 九度oj 题目1026:又一版 A+B

    题目描述: 输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数. 输入: 输入格式:测试输入包含若干测试用例.每个测试用例 ...