zoukankan      html  css  js  c++  java
  • codeforces1064D

    题意是给你一个字符矩阵,‘*’是障碍物,给你起点r,c,和最多能向左走的步数x,最多能向右走的步数y

    问你可访问的点的个数是多少

    一开始用直接暴力BFS被hack了,后来加上优先队列就能ac

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    char data[2005][2005];
    int n,m,r,c,x,y;
    struct node
    {
        int x,y,l,r;
        bool operator <(node a)const
        {
            if(l==a.l)
                return r>a.r;
            else
                return l>a.l;
        }
    };
    int ans=0;
    bool isok(int x,int y)
    {
        return x>=0&&x<n&&y>=0&&y<m&&data[x][y]!='*';
    }
    int vis[2005][2005];
    int dir[4][2]= {-1,0,0,1,1,0,0,-1};
    void bfs()
    {
        priority_queue<node>q;
        q.push(node{r-1,c-1,0,0});
        vis[r-1][c-1]=1;
    //    data[r-1][c-1]='+';
        ans++;
        while(!q.empty())
        {
            node u = q.top();
            q.pop();
    //        printf("%d %d
    ",u.x,u.y);
            for (int i=0; i<4 ; i++ )
            {
                int newx=u.x+dir[i][0];
                int newy=u.y+dir[i][1];
                if(isok(newx,newy) && !vis[newx][newy] && (u.l+(i==3?1:0)<=x) && (u.r+(i==1?1:0)<=y) )
                {
                    ans++;
    //                data[newx][newy]='+';
                    vis[newx][newy]=1;
                    q.push(node{newx,newy,u.l+(i==3?1:0),u.r+(i==1?1:0)});
                }
            }
        }
    }
    int main()
    {
        ans=0;
        memset(vis,0,sizeof(vis));
        scanf("%d%d",&n,&m);
        scanf("%d%d",&r,&c);
        scanf("%d%d",&x,&y);
        getchar();
        for (int i=0; i<n ; i++ )
        {
            for (int j=0; j<m ; j++ )
            {
                data[i][j]=getchar();
            }
            getchar();
        }
        bfs();
        printf("%d",ans);
    }
  • 相关阅读:
    2015-3-27
    2015-3-26
    2015-3-25
    2015-3-24
    oracle数据字典表 系统表
    PowerDesigner教程系列(六)概念数据模型
    PowerDesigner教程系列(五)概念数据模型
    PowerDesigner教程系列(四)概念数据模型
    PowerDesigner教程系列(三)概念数据模型
    PowerDesigner教程系列(二)概念数据模型
  • 原文地址:https://www.cnblogs.com/Json-Five/p/9791660.html
Copyright © 2011-2022 走看看