• HDU-1072-Nightmare


    题目链接

    http://acm.hdu.edu.cn/showproblem.php?pid=1072

    这个题目难吗?,不难,但我做了很久,最后乱七八糟的A了,花了很多时间,A了之后才发现,是个水题,

    反思: 做题前,先把思路搞清,该如何做,这样做对不对,还有没有更好的方法,在草稿纸上把思路理清,

    哪些地方要注意的,在草稿纸上,标清。然后在敲代码,这样只要里思路对了,并且思路能够实现,那么

    一定会很快的AC。很好的减少不必要的错误与时间浪费。

    题目分析:

    BFS 搜下一个点时注意 没有越界,剩余还有两分钟,就可以搜了,如果是0 ,0代表墙,不能走,如果是1 3 (做的时候3没考虑了,害死我了,没有3,永远都不能到出口啊)就加入队列, 如果是4 ,把这点改为0,避免下次再到这点,产生重复,进入死循环,并且时间改为6分钟。加入队列。

    代码

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<queue>
    #include<algorithm>
    using namespace std;


    int n,m,success,ans;
    int ex,ey;
    int map[10][10];
    int dx[4]={1,0,-1,0};
    int dy[4]={0,-1,0,1};

    struct node
    {
    int x,y,cnt,k;
    };

    queue<node> q;

    void bfs(int stx,int sty)
    {
    node s,e;
    while(q.size())
    q.pop();
    s.x=stx; s.y=sty; s.cnt=0; s.k=6;
    q.push(s);
    map[stx][sty]=0;
    while(q.size())
    {
    s=q.front();
    q.pop();
    if(s.x==ex&&s.y==ey)
    {
    success=1;
    ans=s.cnt;
    return ;
    }
    int i;
    for(i=0;i<4;i++)
    {
    e.x=s.x+dx[i]; e.y=s.y+dy[i];
    if(e.x>=0&&e.x<n&&e.y>=0&&e.y<m&&map[e.x][e.y]!=0&&s.k>=2)
    {
    if(map[e.x][e.y]==1||map[e.x][e.y]==3)
    {
    e.cnt=s.cnt+1;
    e.k=s.k-1;
    q.push(e);
    }
    else if(map[e.x][e.y]==4)
    {
    map[e.x][e.y]=0;
    e.cnt=s.cnt+1;
    e.k=6;
    q.push(e);
    }
    }
    }
    }
    return ;
    }

    int main(void)
    {
    int i,j,t;
    int stx,sty;
    scanf("%d",&t);
    while(t--)
    {
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
    {
    for(j=0;j<m;j++)
    {
    scanf("%d",&map[i][j]);
    if(map[i][j]==2)
    {
    stx=i; sty=j;
    }
    else if(map[i][j]==3)
    {
    ex=i; ey=j;
    }
    }
    }
    success=0;
    bfs(stx,sty);
    if(success)
    printf("%d ",ans);
    else
    printf("-1 ");
    }
    return 0;
    }

  • 相关阅读:
    Puppeteer--API
    Puppeteer--性能优化
    Puppeteer--代码示例(3)
    Puppeteer--代码示例(2)
    Puppeteer--代码示例(1)
    Puppeteer--等待加载
    Puppeteer--创建实例
    Puppeteer--爬坑记录
    Puppeteer--参考介绍
    vue.js的的回到顶部
  • 原文地址:https://www.cnblogs.com/liudehao/p/4133176.html
Copyright © 2020-2023  润新知