冲刺蓝桥杯-BFS板块(第八天)

多源BFS问题

cpp 复制代码
//多源BFS在开始BFS之前就将两个感染源入队
#include <bits/stdc++.h>

using namespace std;

#define x first
#define y second

typedef pair<int,int> PII;

const int N=510;

int a,b,n,m;
int dist[N][N];
queue<PII> q;

int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};

void bfs(){
    while(!q.empty()){
        auto t = q.front();
        q.pop();
        
        for(int i=0;i<4;i++){
            int a=t.x+dx[i],b=t.y+dy[i];
            if(a<1||a>n||b<1||b>m)continue;
            if(dist[a][b]>=0)continue;
            
            dist[a][b]=dist[t.x][t.y]+1;
            q.push({a,b});
        }
        
    }
}


int main(){
    cin >> n >> m >> a >>b;
    memset(dist,-1,sizeof dist);
    while(a--){
        int x,y;
        cin >> x >> y;
        q.push({x,y});//bfs之前将起点(感染源)入队
        dist[x][y]=0;
    }
    bfs();
    
    //bfs扫完直接输入领主的位置,直接输出它在第几轮被感染
    while(b--){
        int x,y;
        cin >> x >> y;
        cout << dist[x][y] << endl;
    }
    
    return 0;
}
相关推荐
dayuOK630711 天前
写作卡壳怎么办?我的“5分钟启动法”
人工智能·职场和发展·自动化·新媒体运营·媒体
枫子有风11 天前
LLM-Agent智能体(大厂面试常问)
面试·职场和发展·llm·agent
重生之后端学习11 天前
Java入门
java·开发语言·职场和发展
AIHR数智引擎11 天前
KPI物理失效:AI原生组织的效能重构与技能度量
人工智能·经验分享·职场和发展·重构·ai-native·aihr
想吃火锅100511 天前
【leetcode】121.买卖股票的最佳时机js/c++
算法·leetcode·职场和发展
程序员小远11 天前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
嘿黑嘿呦11 天前
chap 8排序
算法·蓝桥杯·排序算法·软件工程
小欣加油11 天前
leetcode3612 用特殊操作处理字符串I
数据结构·c++·算法·leetcode·职场和发展
旧曲重听111 天前
2026前端技术从「夯」到「拉」
前端·程序人生·职场和发展·软件工程
javaDocker11 天前
某大厂AI应用开发面试题
面试·职场和发展