zoukankan      html  css  js  c++  java
  • 洛谷P1162 填涂颜色(bfs)

    https://www.luogu.org/problem/P1162

    思路:将图从1-n存起来,外面一圈用0填充,然后从(0,0)开始搜

    // luogu-judger-enable-o2
    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    #include <cmath>
    #include <queue>
    #include <vector>
    #include <cstring>
    #include <map>
    #define mem(a) memset(a,0,sizeof(a))
    using namespace std;
    typedef long long lll;
    const int maxn = 200005;
    const lll INF = 0x3f3f3f3f3f;
    int dir[8][2]= {0,1,0,-1,1,0,-1,0,-1,-1,1,-1,-1,1,1,1};
    int dir2[4][2]= {0,1,0,-1,1,0,-1,0};
    bool flag;
    int a[35][35],b[35][35],n;
    struct node{
        int x,y;
        node(){};
        node(int xx,int yy):x(xx),y(yy){};
    };
    
    void bfs(int x,int y)
    {
        queue<node>q;
        q.push(node(0,0));//(0,0)一定是0
        while(!q.empty()){
            int fx = q.front().x,fy = q.front().y;
            q.pop();
            b[fx][fy] = 3;//将圈外的0标记为3
            for(int i=0;i<4;i++)
            {
                int ex = fx + dir2[i][0],ey = fy + dir2[i][1];
                if(ex < 0 || ex > n+1 || ey < 0 || ey > n + 1 || b[ex][ey] == 1 || b[ex][ey] == 3)
                    continue;
                q.push(node(ex,ey));
            }
        }
    }
    int main()
    {
        cin >> n;
        for(int i = 1; i <= n; i++)
        for(int j = 1; j <= n; j++){
            cin >> a[i][j];
            if(a[i][j] == 0) b[i][j] = 2;
            else b[i][j] = 1;
        }
        bfs(0,0);
        for(int i = 1; i <= n; i++){
            for(int j =1; j <= n; j++){
                if(b[i][j] == 3 ) cout << "0";
            else
                    cout << b[i][j];
                if(j < n) cout << " ";
                else cout << endl;
            }
        }
        return 0;
    }
  • 相关阅读:
    JVM内存的划分
    劝学
    java中switch的用法
    方法传递参数的分类
    ajax缓存机制
    vuex
    keep-alive
    路由滚动行为scrollBehavior
    vue等
    防止刷新路由后参数消失
  • 原文地址:https://www.cnblogs.com/LLLAIH/p/11294038.html
Copyright © 2011-2022 走看看