博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zoj 2165 Red and Black (BFS)
阅读量:2221 次
发布时间:2019-05-08

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

雨不停的下了好几天了,烦躁的心也渐渐平静下来,耳畔的轻音乐依旧。。。。

静下心来做题,还算不错,有一道不会,先放过去了,这道题不快不慢得,一次就AC,感觉很好,呵呵。。。

思路:

     1.也算是队列吧,只是入队和出队时,把坐标也一起随进去了;

     2.b数组用来标记这块砖是否已经走过,如果走过一遍了,就不再走了;

     3.出队时用了两个指针,这样可以把元素的俩坐标同时带出来;

还有点想法:

    内while循环中,其实是四个相同的结构用了四次,可以考虑写成四个函数,然后调用四次,这样就又可以简化代码了。。。。。

#include
#include
typedef struct { char s[5000]; int s1[5000]; int s2[5000];}queue;queue que;int head,rear;void In(char a,int x,int y){ que.s[rear]=a; que.s1[rear]=x; que.s2[rear]=y; rear++;}void Out(int *x,int *y){ *x=que.s1[head]; *y=que.s2[head]; head++;}int isEmpty(){ if(head==rear) return 1; else return 0;} int main(){ int w,h,i,j,x,y,count,b[25][25],p1,p2; char a[25][25],temp; scanf("%d%d",&w,&h); while(!(w==0&&h==0)) { getchar(); for(i=0;i
=0&&a[i][j]=='.'&&b[i][j]==0) { In(a[i][j],i,j); b[i][j]=1; count++; } i=p1,j=p2+1; if(j
=0&&a[i][j]=='.'&&b[i][j]==0) { In(a[i][j],i,j); b[i][j]=1; count++; } i=p1+1,j=p2; if(i

转载地址:http://wosfb.baihongyu.com/

你可能感兴趣的文章
如何选择优化器 optimizer
查看>>
一文了解强化学习
查看>>
CART 分类与回归树
查看>>
seq2seq 的 keras 实现
查看>>
seq2seq 入门
查看>>
什么是 Dropout
查看>>
用 LSTM 做时间序列预测的一个小例子
查看>>
用 LSTM 来做一个分类小问题
查看>>
详解 LSTM
查看>>
按时间轴简述九大卷积神经网络
查看>>
详解循环神经网络(Recurrent Neural Network)
查看>>
为什么要用交叉验证
查看>>
用学习曲线 learning curve 来判别过拟合问题
查看>>
用验证曲线 validation curve 选择超参数
查看>>
用 Grid Search 对 SVM 进行调参
查看>>
用 Pipeline 将训练集参数重复应用到测试集
查看>>
PCA 的数学原理和可视化效果
查看>>
机器学习中常用评估指标汇总
查看>>
什么是 ROC AUC
查看>>
Bagging 简述
查看>>