hdu 1312 poj 1979 Red and Black BFS
来源:互联网 发布:linux如何配置ip地址 编辑:程序博客网 时间:2024/05/16 09:14
题目 http://poj.org/problem?id=1979
这是一个简单的BFS 刚开始调试老错了 对不上答案 很纠结 最后发现原来我的w 和 h搞反了哦 含纠结。。。。
做这个题告诉我 下次题目一定要 小心啊 不要犯这个低级错误。。呵呵
下面是AC代码
#include<iostream>#include<queue>#include<cstdio>using namespace std;struct node{int x,y;};char a[21][21];int w,h,visit[21][21],sx,sy; ///sx sy @ 起始位置 visit标记int dre[4][2]={0,1,1,0,0,-1,-1,0}; ///上右下左void Bfs(){ queue<node> Q; node p,s; p.x=sx; p.y=sy; Q.push(p); int sum=1; visit[sx][sy]=1; ///标记 while(!Q.empty()) { s=Q.front(); Q.pop(); for(int i=0;i<4;i++) { p=s; p.x+=dre[i][0]; ///上右下左 p.y+=dre[i][1]; if(a[p.x][p.y]=='#') continue; ///如果是#就退出来 if(p.x>0&&p.x<=h&&p.y>0&&p.y<=w) ///要在这个长方形下面。这样h 和w位置 { if(a[p.x][p.y]=='.'&&visit[p.x][p.y]==0) ///标记一下 { visit[p.x][p.y]=1; ///标记 sum++; ///计算一共有多少 . 和 Q.push(p); } } } } cout<<sum<<endl;}int main(){ int i,j; while(scanf("%d%d",&w,&h)!=EOF,w+h) { for(i=1;i<=h;i++) ///注意h和w位置 for(j=1;j<=w;j++) { cin>>a[i][j]; if(a[i][j]=='@'){sx=i;sy=j;} ///记录起始位置。 visit[i][j]=0; } Bfs(); } return 0;}
- hdu 1312 poj 1979 Red and Black BFS
- poj 1979 &&hdu 1312Red and Black (bfs)
- hdu 1312 Red and Black && POJ 1979 Red and Black
- poj 1979Red and Black(BFS DFS)
- POJ 1979 Red and Black(BFS)
- poj 1979 Red and Black - bfs
- POJ 1979 Red and Black (裸BFS)
- poj 1979 Red and Black(BFS)
- POJ 1979 Problem:Red and Black(BFS)
- POJ 1979 Red and Black(BFS)
- 【BFS】poj 1979 Red and Black
- hdu 1312 red and black BFS
- HDU 1312 Red and Black(BFS,DFS)
- HDU 1312 Red and Black(简单BFS)
- HDU 1312 Red and Black (BFS)
- Hdu 1312 Red and black(BFS)
- hdu 1312 Red and Black(bfs实现)
- hdu 1312 Red and Black (dfs+bfs)
- 【转载】java socket编程
- Android驱动使用JNI调用
- 手把手教你把Vim改装成一个IDE编程环境(图文)
- 物理引擎Box2D之链接
- 转换函数
- hdu 1312 poj 1979 Red and Black BFS
- Android Camera 运行流程
- 纸上得来终觉浅,绝知此事要躬行
- mac搭建cocos2d-x开发环境(mac10.7.5+xcode4.5.2+cocos2d-x)
- 面向对象之五大基本原则
- Android 学习笔记(2) -- Intent
- 如何把bmp真彩图片灰化?
- ubuntu c/c++ IDE编程环境
- HDU1050