CodeForces 589J Cleaner Robot
来源:互联网 发布:交换机端口绑定ip地址 编辑:程序博客网 时间:2024/06/02 09:58
跟普通迷宫不同的是,它这个,每个点有四个方向,所以每个方向也对应一个状态,然后按要求走下去就行
#include <cstdio>#include <iostream>#include <algorithm>#include <cmath>#include <queue>#include <cstdlib>#include <cstring>#include <vector>#include <set>#include <map>#include <string>using namespace std;#define ll long long#define maxn 4005const int dx[4] = { -1, 0, 1, 0 };const int dy[4] = { 0, 1, 0, -1 };char grid[12][12];bool vis[12][12][4];bool walk[12][12];int N, M;int main(){//freopen("input.txt", "r", stdin);//freopen("output.txt", "w", stdout);scanf("%d%d", &N, &M);int dir = -1, ax = -1, ay = -1;for (int i = 0; i < N; ++i){scanf("%s", grid[i]);for (int j = 0; j < M; ++j){if (grid[i][j] != '*'&&grid[i][j] != '.'){if (grid[i][j] == 'U'){dir = 0;}else if (grid[i][j] == 'R'){dir = 1;}else if (grid[i][j] == 'D'){dir = 2;}else{dir = 3;}ax = i; ay = j; grid[i][j] = '.';}}}int ans = 0;int tx, ty, tdir;int cnt;bool cannot = false;while (1){if (walk[ax][ay] == false){++ans;walk[ax][ay] = true;}//printf("%d %d %d\n", ax, ay, dir);//vis[ax][ay][dir] = true;cnt = 0;tdir = dir;while (1){tx = ax + dx[tdir]; ty = ay + dy[tdir];if (tx >= 0 && tx < N&&ty >= 0 && ty < M&&grid[tx][ty] != '*'){break;}vis[ax][ay][tdir] = true;cnt++;if (cnt >= 4){cannot = true;break;}tdir++;if (tdir >= 4)tdir -= 4;}if (cannot || vis[tx][ty][tdir])break;ax = tx; ay = ty; dir = tdir;}printf("%d\n", ans);//system("pause");//while (1);return 0;}
0 0
- Codeforces 589J. Cleaner Robot
- CodeForces 589J Cleaner Robot
- CodeForces 589 J Cleaner Robot
- CodeForces 589 J Cleaner Robot (DFS)
- CodeForces #589 J Cleaner Robot 搜索
- Codeforces 589J Cleaner Robot(DFS)
- CodeForces 589J -- J. Cleaner Robot (BFS)
- Cleaner Robot(CF 589J)
- CF-589J Cleaner Robot
- DFS J. Cleaner Robot Codeforce 589J(实例与分析)
- CF Cleaner Robot (BFS)
- 【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest J】【暴力模拟】Cleaner Robot 机器人行走 决策固定
- codeforces 589J
- codeforces 589J
- Broken robot CodeForces
- CodeForces 44J Triminoes
- CodeForces - 630J Divisibility
- CodeForces-630 J. Divisibility
- Android 快速开发系列 ORMLite 框架最佳实践
- 内存溢出和内存泄漏
- Lua调用C/C++函数
- 从上往下打印二叉树
- java高级特性之集合概述 其二
- CodeForces 589J Cleaner Robot
- 呼叫中心架构设计
- 数据库的索引
- EventBus
- ARC(二) ARC规则
- POJ3268-Silver Cow Party
- Java基础之switch类型转换
- jquery基本的用法
- 第一章.(2)对象导论之访问控制权限修饰词的铺垫[小知识点]