博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bzoj 2252: [2010Beijing wc]矩阵距离 广搜
阅读量:6093 次
发布时间:2019-06-20

本文共 2314 字,大约阅读时间需要 7 分钟。

2252: [2010Beijing wc]矩阵距离 

Time Limit: 10 Sec  Memory Limit: 256 MB
Submit: 563  Solved: 274
[ ][ ][ ]

Description

 

假设我们有矩阵,其元素值非零即1

a11…… a1m

…………….

an1…….anm

 

定义aij与akl之间的距离为D(aij,akl)=abs(i-k)+abs(j-L) 

Input

输入文件的第一行为两个整数,分别代表n和m。 

接下来的n行,第i行的第 j个字符代表aij

Output

输出包含N行,每行M个用空格分开的数字,其中第i行第J个数字代表

Min(D(aij,axy) 1<=x<=N 1<=y<m,且axy=1

Sample Input

3 4
0001
0011
0110

Sample Output

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

HINT

 

对于100%的数据,满足 0 <  m n <=1000

 

Source

 
题解:
广搜。
从1开始搜即可。
1 #include
2 using namespace std; 3 #define MAXN 1010 4 #define INF 1e9 5 int fx[6]={
0,0,1,-1}; 6 int fy[6]={
1,-1,0,0}; 7 int dis[MAXN][MAXN],a[MAXN][MAXN],qx[MAXN*MAXN],qy[MAXN*MAXN]; 8 char s[MAXN][MAXN]; 9 bool vis[MAXN][MAXN];10 int main()11 {12 int n,m,i,j,wzx,wzy,head,tail,ux,uy,vx,vy;13 scanf("%d %d",&n,&m);14 for(i=1;i<=n;i++)scanf("\n%s",s[i]+1);15 wzx=0;wzy=0;16 memset(dis,0,sizeof(dis));17 head=0;tail=0;memset(vis,false,sizeof(vis));18 for(i=1;i<=n;i++)19 {20 for(j=1;j<=m;j++){dis[i][j]=INF;a[i][j]=s[i][j]-'0';if(a[i][j]==1){wzx=i,wzy=j;qx[++tail]=i;qy[tail]=j;vis[i][j]=true;dis[i][j]=0;}}21 }22 //memset(qx,0,sizeof(qx));23 //memset(qy,0,sizeof(qy));24 //memset(vis,false,sizeof(vis));25 //vis[wzx][wzy]=true;26 //head=0;tail=1;qx[tail]=wzx;qy[tail]=wzy;27 //dis[wzx][wzy]=0;28 while(head!=tail)29 {30 head++;if(head==1000010)head=0;31 ux=qx[head];32 uy=qy[head];33 for(i=0;i<=3;i++)34 {35 vx=ux+fx[i];36 vy=uy+fy[i];37 if(vx>=1&&vx<=n&&vy>=1&&vy<=m&&vis[vx][vy]==false)38 {39 if(dis[vx][vy]>dis[ux][uy]+1)40 {41 vis[vx][vy]=true;42 dis[vx][vy]=dis[ux][uy]+1;43 tail++;if(tail==1000010)tail=0;44 qx[tail]=vx;45 qy[tail]=vy;46 }47 if(a[vx][vy]==1){dis[vx][vy]=0;vis[vx][vy]=true;}48 }49 }50 vis[ux][uy]=false;51 }52 for(i=1;i<=n;i++)53 {54 for(j=1;j<=m;j++)printf("%d ",dis[i][j]);55 printf("\n");56 }57 fclose(stdin);58 fclose(stdout);59 return 0;60 }

 

转载于:https://www.cnblogs.com/Var123/p/5317856.html

你可能感兴趣的文章
微信小程序开发
查看>>
Memcache知识点梳理
查看>>
源码分析MySQL mysql_real_query函数
查看>>
求职简历撰写要点
查看>>
第七章LED将为我闪烁:控制发光二极管
查看>>
Windows 进程间通信
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
Elasticsearch增删改查
查看>>
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
CCF201612-1 中间数(解法二)(100分)
查看>>
SqlServer作业指定目标服务器
查看>>
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>
User implements HttpSessionBindingListener
查看>>
抽象工厂方法
查看>>
ubuntu apt-get 安装 lnmp
查看>>