32. [POI1999] 位图

★   输入文件:bit.in   输出文件:bit.out   简单对比
时间限制:1 s   内存限制:128 MB

【问题描述 】

给定一个 n*m 的矩形位图,位图中的每个像素不是白色就是黑色,但至少有一个是白色的。第 i 行、第 j 列的像素被称作像素 (i, j) 。两个像素 p1 = (i1, j1) , p2 = (i2, j2) 之间的距离定义为: d(p1, p2) = |i1 - i2| + |j1 - j2|.

【任务 】

编一个程序完成以下操作:

1 .从输入文件中读入此位图的有关信息。

2 .对于每个像素,计算此像素与离其最近的“白像素”的距离。

3 .将结果写到输出文件里面。

【输入格式 】

输入文件的第一行包含两个整数 n, m ( 1 ≤ n ≤ 182, 1 ≤ m ≤ 182 ),用一个空格隔开。接下来 n 行,每一行都包含一个长度为 m 的 01 串;第 i+1 行,第 j 列的字符若为 1 ,则像素 (i, j) 是白色的;否则是黑色的。

【输出格式 】

输出文件包含 n 行 , 每行有 m 个用空格隔开的整数。第 i 行、第 j 列的整数表示 (i, j) 与离它最近的白像素之间的距离

【样例输入】

bit.in

3 4 
0001 
0011 
0110

【样例输出】

bit.out

3 2 1 0 
2 1 0 0 
1 0 0 1

思路:宽搜可过。

#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m;
int a[][];
int dx[]={,,,-};
int dy[]={,,-,};
queue<int>que,pue;
void bfs(){
while(!que.empty()){
int x=que.front(),y=pue.front();
que.pop();
pue.pop();
for(int i=;i<;i++){
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>=&&xx<=n&&yy>=&&yy<=m&&a[xx][yy]!= ){
if(a[xx][yy]==-){
a[xx][yy]=a[x][y]+;
que.push(xx);
pue.push(yy);
}
else{
if(a[xx][yy]>a[x][y]+){
a[xx][yy]=a[x][y]+;
que.push(xx);
pue.push(yy);
}
}
}
/*cout<<"******************************"<<endl;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)
printf("%d ",a[i][j]);
printf("\n");
}
cout<<"*******************************"<<endl;*/
}
}
}
int main(){
freopen("bit.in","r",stdin);
freopen("bit.out","w",stdout);
scanf("%d%d",&n,&m);
memset(a,-,sizeof(a));
for(int i=;i<=n;i++){
char s[];
scanf("%s",s+);
for(int j=;j<=m;j++){
if(s[j]==''){
a[i][j]=;
que.push(i);
pue.push(j);
}
}
}
bfs();
for(int i=;i<=n;i++){
for(int j=;j<=m;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}

cogs 32. [POI1999] 位图的更多相关文章

  1. DIB位图(Bitmap)的读取和保存

    设备无关位图(Device Independent Bitmap)是可以保存在磁盘的位图文件,可以从磁盘读取到内存或者从内存保存到磁盘上.它的文件结构是标准化的,可以在Windows/Linux/Un ...

  2. DIB位图文件的格式、读取、保存和显示(转载)

    一.位图文件结构 位图文件由三部分组成:文件头 + 位图信息 + 位图像素数据 1.位图文件头:BitMapFileHeader.位图文件头主要用于识别位图文件.以下是位图文件头结构的定义: type ...

  3. 位图文件格式及linux下C语言来操作位图文件

    说到图片,位图(Bitmap)当然是最简单的,它是Windows显示图片的基本格式,其文件扩展名为*.BMP.由于没有经过任何的压缩,故BMP图片往往很大.在Windows下,任何格式的图片文件都要转 ...

  4. 位图文件(BMP)格式以及Linux下C程序实现(转)

    源:位图文件(BMP)格式以及Linux下C程序实现 说到图片,位图(Bitmap)当然是最简单的,它是Windows显示图片的基本格式,其文件扩展名为*.BMP.由于没有经过任何的压缩,故BMP图 ...

  5. 读取位图(bitmap)实现及其要点

    位图的格式如下: 1.文件头信息块 0000-0001 :文件标识,为字母ASCII码“BM”. 0002-0005 :文件大小. 0006-0009 :保留,每字节以“00”填写. 000A-000 ...

  6. Windows下BMP位图格式介绍

    BMP图片,是Bitmap(位图)的简称,它是windows下显示图片的基本格式.在windows下任何格式的图片文件(包括视频播放)都要转化为位图才能显示出来.各种格式的图片文件也都是在位图格式的基 ...

  7. 浅析BMP位图文件结构(含Demo)

    浅析BMP位图文件结构(含Demo) 作者:一点一滴的Beer http://beer.cnblogs.com/   关于BMP位图格式在网上可以找到比较详细的相关文档,有兴趣的可以搜索标题为“BMP ...

  8. BMP位图调色板说明

    网上一搜,可以看到BMP位图结构的详细说明,这篇文章专门谈一下其中的调色板. 多少位位图并不是指每一个颜色该用多少位表示,对于颜色来说,它始终都是24位(RGB),或者是32位(RGBA),而是指该位 ...

  9. windows设备相关位图与设备无关位图

    windows支持两种位图格式,DDB(device-dependent bitmap),DIB(device-independent bitmap).设备相关位图用于windows显示系统中,其图像 ...

随机推荐

  1. PForDelta的介绍论文

    ttp://paperhub.s3.amazonaws.com/7558905a56f370848a04fa349dd8bb9d.pdf FOR(Frame-Of-Reference),PFor(Pa ...

  2. angularjs 路由 ngRoute tab切换

    <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...

  3. nyoj--218--Dinner(语法)

    Dinner 时间限制:100 ms  |  内存限制:65535 KB 难度:1 描述 Little A is one member of ACM team. He had just won the ...

  4. The while statement

    Computers are often used to automate repetitive tasks. Repeating identical or similar tasks without ...

  5. 如何让alertdialog选择完后自动关闭

    builder.setIcon(R.drawable.ic_system) .setTitle("串口号") .setSingleChoiceItems(mPorts, mSele ...

  6. 《剑指offer》调整数组顺序使奇数位于偶数前面

    一.题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 二.输入描述 ...

  7. <Sicily>Polynomial

    一.题目描述 Given a polynomial and the value of the variable x, you task is to calculate the value of the ...

  8. 2018年湘潭大学程序设计竞赛 maze(bfs)

    链接:https://www.nowcoder.com/acm/contest/105/F来源:牛客网 有q个单向传送阵,每个传送阵各有一个入口和一个出口,入口和出口都在迷宫的格子里,当走到或被传送到 ...

  9. DedeCMS筛选简单实现方法不改后台源文件

    笔者在前面几篇文章中提到的dedecms筛选的实现方法,对新手来说实现过程较复杂.接下来分享一个最简单的实现在移动端上筛选功能. 最近在筹备移动端企业站,实现功能有:实现一个管理后台管理PC端和移动端 ...

  10. Vue2.4.0 新增的inheritAttrs,attrs

    官方inheritAttrs,attrs文档https://cn.vuejs.org/v2/guide/components-props.html,从最下面的'非 Prop 的特性'开始看,看到最后 ...