poj 1979 Red and Black
2015-10-25 22:53
134 查看
题目链接:http://poj.org/problem?id=1979
题意:.可以走 #不可以走 @当前位置 求可以到达的位置
分类:DFS
代码:红色部分容易出错
题意:.可以走 #不可以走 @当前位置 求可以到达的位置
分类:DFS
代码:红色部分容易出错
///#include<bits/stdc++.h> #include<stdio.h> #include<iostream> #include<string.h> using namespace std; #define LL __int64 #define PI 3.1415926535898 const LL inf=1000000007; int n,m; char ch[30][30]; bool hang[30]; bool lie[30]; bool visit[30][30]; int hx[4]={1,0,-1,0}; int hy[4]={0,1,0,-1}; int temp_x,temp_y; int st_x,st_y; int en_x,en_y; LL ans; void dfs(int x,int y) { for(int i=0;i<=3;i++) { temp_x=x+hx[i]; temp_y=y+hy[i]; if(temp_x<1||temp_x>n||temp_y<1||temp_y>m) continue; if(ch[temp_x][temp_y]=='#') continue; if(!visit[temp_x][temp_y]) { //ans++; visit[temp_x][temp_y]=1; dfs(temp_x,temp_y); //visit[temp_x][temp_y]=0; } } return ; } int main() { while(scanf("%d %d",&m,&n)&&(n+m)) { memset(visit,0,sizeof(visit)); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>ch[i][j]; if(ch[i][j]=='@') { st_x=i; st_y=j; } } } ans=0; visit[st_x][st_y]=1; dfs(st_x,st_y); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(visit[i][j]) ans++; } } cout<<ans<<endl; } return 0; }
相关文章推荐
- 九度OJ 1164:旋转矩阵 (矩阵运算)
- 温故知新之__Java类加载器(一)
- scrapy模拟表单爬虫
- 在vi/vim中输入方向键却被被转化为A B C D, 咋办?
- jquery UI 隐藏关闭按钮
- 九度OJ 1163:素数 (素数)
- 怎样在android中添加背景图片?
- Codeforces Round #327 (Div. 2) A Wizards' Duel (水题)
- CSS3总结
- 九度OJ 1163:素数 (素数)
- Sublime Text 3 常用插件以及安装方法(转)
- POJ3678
- opencv浅拷贝与深拷贝
- 使用Qt设计师文件的3种方式
- PostgreSQL——服务器基本设置与操作
- XMPP客户端库Smack 4.1.4版官方开发文档之五
- 高效使用JavaEE ORM框架
- 蓝牙聊天小项目——(2015.12.13暂时完结篇)
- Linux 网络编程: daytime Service
- log4j的使用方法