问题 E(1633): 【图论专项赛】位图
时间限制: 1 Sec 内存限制: 64 MB

题目描述
给出一个大小为n行*m列的矩形位图。该位图的每一个象素点不是白色就是黑色,但是至少有一个象素点是白色。在i行j列的象素点我们称为点(i,j)。
两个象素点p1=(i1,j1)p1=(i1,j1)和p2=(i2,j2)p2=(i2,j2)之间的距离定义如下:
d(p1,p2)=|i1−i2|+|j1−j2|d(p1,p2)=|i1-i2|+|j1-j2|
现在的任务是:对于每一个象素点,计算它到最近的白色点的距离。如果它本身是白色点,距离为0。

输入
第1行:2个整数n,m(1<=n <=182,1<=m<=182)
接下来n行,每一行有一个长度为m的0/1字符串,描述一行象素点。如果点(i,j)为白色,则值为1,否则值为0。

输出
共n行,每行有m个整数,数之间用1个空格分开,分别表示对应的象素点距离白色点的距离。

样例输入
3 4
0001
0011
0110

样例输出
3 2 1 0
2 1 0 0
1 0 0 1

菜题,对于每一个白点,都做一遍bfs,更新最小距离。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
using namespace std;#define MAXN 182
#define MAXM 182
#define INF 0x3f3f3f3f
typedef long long int LL;int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
struct point
{int x,y;point(){}point(int a,int b):x(a),y(b){}
};int M,N;
bool G[MAXM+10][MAXN+10];queue<point>que;
int dist[MAXM+10][MAXN+10];
bool vis[MAXM+10][MAXN+10];
void Spfa()
{memset(dist,0x3f,sizeof(dist));memset(vis,0,sizeof(vis));while(!que.empty())que.pop();for(int i=1;i<=M;++i)for(int j=1;j<=N;++j)if(G[i][j]){dist[i][j]=0;que.push(point(i,j));vis[i][j]=1;}point now;int nx,ny;while(!que.empty()){now=que.front();que.pop();vis[now.x][now.y]=0;for(int i=0;i<4;++i){nx=now.x+dir[i][0],ny=now.y+dir[i][1];if(nx<1||ny<1||nx>M||ny>N)continue;if(dist[nx][ny]>dist[now.x][now.y]+1){dist[nx][ny]=dist[now.x][now.y]+1;if(!vis[nx][ny]){vis[nx][ny]=1;que.push(point(nx,ny));}}}}
}int main()
{scanf("%d%d",&M,&N);int i,j;char str[MAXN+10];for(i=1;i<=M;++i){scanf("%s",str+1);for(j=1;j<=N;++j)G[i][j]=(str[j]=='1');}Spfa();for(i=1;i<=M;++i){for(j=1;j<N;++j)printf("%d ",dist[i][j]);printf("%d\n",dist[i][N]);}
}

【图论最短路】【CQBZOJ 1633】【图论专项赛】位图相关推荐

  1. bzoj4144 [AMPPZ2014]Petrol 图论 最短路 并查集

    bzoj4144 [AMPPZ2014]Petrol 图论 最短路 并查集 1.这道题我们主要就是要求出距离一个油站的最近的油站 首先我们dijkstra 求出任意一个点到 离他最近的油站的距离 2. ...

  2. 图论最短路:Bellman-Ford与其优化SPFA算法的一点理解

    文章目录 前言 一.对Bellman-Ford的深入理解 1. Bellman-Ford有什么用? 2. 什么是松弛操作? 3. Bellman-Ford的k次迭代意义? 4. 一个重要定理 5. 对 ...

  3. 【挑战程序设计】- 2.5 图论(最短路、最小生成树)

    2.5 图论(最短路.最小生成树) 文章目录 2.5 图论(最短路.最小生成树) 2.5.1 定义们 2.5.2 图的表示 2.5.3 图的搜索 2.5.4 最短路问题 单源1:bellman-for ...

  4. 【图论-最短路变形】想越狱的小杉

    [图论-最短路变形]想越狱的小杉 Time Limit:1000MS  Memory Limit:65536K Description 背景 Background 这次小杉来到了经典美剧<越狱& ...

  5. 【阿良的算法之路】图论最短路算法模板

    图论: [阿良的算法之路]图论最短路算法模板 [模板]dirjkstra单源最短路径 [模板]Bellman-Ford多源最短路 [模板]Spfa求最短路 [模板]Spfa判断负环 [模板]Floya ...

  6. “汇新杯”新兴科技+互联网创新大赛青年创客专项赛即将截止报名

    "汇新杯"新兴科技+互联网创新大赛由工业和信息化部工业文化发展中心联合深圳市龙华区人民政府举办,旨在大力发展新兴科技,同时通过大赛激发大学生.科技人才.科研团队.中小微企业和社会团 ...

  7. 设计赋能,数联杭温!2020温州“市长杯”·数字设计(杭州)专项赛开始报名啦!...

    点击上方蓝色字关注我们~ 设计江湖 瓯越论剑 巅峰对决 谁夺魁? 如果你是一名设计师 你的未来一定在 温州"市长杯" ☆ 2020"市长杯" 中国(温州)工业设 ...

  8. 第五届“强网杯”青少年专项赛盛大开赛

    9月25日,第五届"强网杯"青少年专项赛线上赛盛大开赛.作为国家级赛事强网杯的系列专项赛,青少年专项赛圆满践行了向青少年普及网络安全知识与技能,提升青少年网络安全素养和创新能力,发 ...

  9. 【融创同智 竞促发展】2019AIIA杯人工智能巡回赛及专项赛工作通气会在京成功召开

    3月29日,"2019AIIA杯人工智能巡回赛及专项赛"工作通气会在北京顺利举办.工业和信息化部科技司高技术处副处长俞文心到会并致辞,本次会议由中国信息通信研究院副总工程师.中国人 ...

最新文章

  1. DGL RDKit | 基于Attentive FP可视化训练模型原子权重
  2. 无人配送的Nuro再融5亿美元,为啥中国复刻者们没它这么火
  3. FPGA较传统CPU强在哪里?
  4. Android 使用自带的HttpClient进行https请求出现403的解决过程记录
  5. 微型计算机实验代码,微型计算机原理实验1-数据传送
  6. java继承中的方法覆盖问题
  7. linuxliveu盘怎么用_施耐德LMC058 plc用U盘怎么传输程序?
  8. 对MBProgressHUD进行二次封装并精简使用
  9. java 双向链表循环_(java实现)双向循环链表
  10. C#正则表达式(来源:侧身向南边博客)
  11. 手机QQ聊天记录文件解密方法学习
  12. origin柱状图同时有两组数和两组数差值_教程 | Origin用矩阵绘制多层曲面映射图...
  13. 2018世界人工智能大会
  14. 运算符的优先级(从高到低)
  15. $.contains()
  16. SpamSieve for Mac(垃圾邮件过滤软件)
  17. 密码打码就安全了吗?这款星标 20K 的去 『马赛克』 开源神器,用 AI 一秒还原高清原图!...
  18. linux 的时区设置函数tzset()
  19. 日立电梯mca09,hge3,mca13电梯适用,可进行调试
  20. apache poi 生成word 3D折线图 maven

热门文章

  1. LDA模型中文文本主题提取丨可视化工具pyLDAvis的使用
  2. 一个基于 Vue3 Vite 的相册应用
  3. 利用Python网络爬虫实现对网易云音乐歌词爬取
  4. CTSCAPIO 2017游记
  5. 升级JDK版本注意事项
  6. Apple的M1 MacBook Pro 与 2020年的Intel MacBook Pro速度对比测试
  7. 【计算机基础】Macbook安装Anaconda和使用Jupyter notebook
  8. Golang iota详解
  9. Integration of image quality and motion cues for face anti-spoofing A neural network approach
  10. 定义变量byte a = (byte)128输出a的结果