HDOJ 1010
2015-08-10 17:25
393 查看
HDOJ 1010
#include<iostream> #include<algorithm> #include<cstdio> #include<cmath> #include<iomanip> #include<cfloat> using namespace std; bool flag; char a[10][10]; int n, m, t, di, dj; int c[4][2] = { { 1,0 },{ 0,1 },{ 0,-1 },{ -1,0 } }; void keng(int x,int y,int s) { int i; if (flag) { return; } if (a[x][y] == 'X') { return; } if (x == di&&y == dj&&s == t) { flag = 1; return; } if (x < 0 || x >= n || y < 0 || y >= m) { return; } for (i = 0;i < 4;i++) { a[x][y] = 'X'; keng(x + c[i][0], y + c[i][1], s + 1); if (flag) return; a[x][y] = '.'; } } int main() { while ((scanf("%d%d%d",&n,&m,&t))&& (n || m || t)) { getchar(); int si, sj, k = 0; flag = 0; for (int i = 0;i < n;i++) { for (int j = 0;j < m;j++) { scanf("%c", &a[i][j]); if (a[i][j] == 'S') { si = i; sj = j; } else if (a[i][j] == 'X') { k++; } else if (a[i][j] == 'D') { di = i; dj = j; } } getchar(); } if (n*m - k < t) { cout << "NO" << endl; } else if ((si + sj + di + dj + t) % 2 == 1) { cout << "NO" << endl; } else { keng(si, sj, 0); if (flag) cout << "YES" << endl; else cout << "NO" << endl; } } return 0; }
相关文章推荐
- 聊聊分布式事务
- Eclipse的java代码出错:The import XXXX cannot be resolved
- Android--SlidingMenu 使用详解
- Android发送验证码的倒计时按钮
- Android工程结构
- IOS学习之——设置不允许程序后台运行
- ef中使用事务
- POJ 2112 Optimal Milking(Floyd+多重匹配+二分枚举)
- iOS新特性
- 返回两个日期之间的日期集合
- Jenkins安装配置
- Linux系统下的用户审计方法
- CentOS下安装配置PPTP ***服务器
- C#实现获取程序路径方法小结
- sql查询优化小结
- python 基础教程
- hdu 2025 查找最大元素
- 如何选择redis和memcache
- WPF ListView展示层叠信息
- 学习zepto.js(原型方法)[1]