HDU 1035 Robot Motion(dfs + 模拟)
嗯...
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1035
这道题比较简单,但自己一直被卡,原因就是在读入mp这张字符图的时候用了scanf被卡...
注意初始化和dfs边界:如果超出图或者曾经被标记过则输出
AC代码:
#include<cstdio>
#include<cstring>
#include<iostream> using namespace std; char mp[][];
int k, a, b, c, flag[][]; inline void dfs(int x, int y){
if(x <= || y <= || x > a || y > b){
printf("%d step(s) to exit\n", k);
return;
}
if(flag[x][y] != ){
printf("%d step(s) before a loop of %d step(s)\n", flag[x][y] - , k - flag[x][y] + );//k - (flag[x][y] - 1)
return;
}
if(mp[x][y] == 'E'){
k++;
flag[x][y] = k;
dfs(x, y + );
}
else if(mp[x][y] == 'W'){
k++;
flag[x][y] = k;
dfs(x, y - );
}
else if(mp[x][y] == 'N'){
k++;
flag[x][y] = k;
dfs(x - , y);
}
else if(mp[x][y] == 'S'){
k++;
flag[x][y] = k;
dfs(x + , y);
}
} int main(){
while(scanf("%d%d%d", &a, &b, &c) != EOF && a + b){
memset(flag, , sizeof(flag));
for(int i = ; i <= a; i++)
for(int j = ; j <= b; j++)
cin >> mp[i][j];//scanf会被卡
k = ;
dfs(, c);
}
return ;
}
AC代码
HDU 1035 Robot Motion(dfs + 模拟)的更多相关文章
- HDOJ(HDU).1035 Robot Motion (DFS)
HDOJ(HDU).1035 Robot Motion [从零开始DFS(4)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DF ...
- hdu 1035 Robot Motion(dfs)
虽然做出来了,还是很失望的!!! 加油!!!还是慢慢来吧!!! >>>>>>>>>>>>>>>>> ...
- hdu 1035 Robot Motion(模拟)
Problem Description A robot has been programmed to follow the instructions in its path. Instructions ...
- (step 4.3.5)hdu 1035(Robot Motion——DFS)
题目大意:输入三个整数n,m,k,分别表示在接下来有一个n行m列的地图.一个机器人从第一行的第k列进入.问机器人经过多少步才能出来.如果出现了循环 则输出循环的步数 解题思路:DFS 代码如下(有详细 ...
- [ACM] hdu 1035 Robot Motion (模拟或DFS)
Robot Motion Problem Description A robot has been programmed to follow the instructions in its path. ...
- 题解报告:hdu 1035 Robot Motion(简单搜索一遍)
Problem Description A robot has been programmed to follow the instructions in its path. Instructions ...
- hdu1035 Robot Motion (DFS)
Robot Motion Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...
- hdoj 1035 Robot Motion
Robot Motion Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- poj 1573 Robot Motion【模拟题 写个while循环一直到机器人跳出来】
...
随机推荐
- POJ 3177 Redundant Paths (tarjan边双连通分量)
题目连接:http://poj.org/problem?id=3177 题目大意是给定一些牧场,牧场和牧场之间可能存在道路相连,要求从一个牧场到另一个牧场要有至少两条以上不同的路径,且路径的每条pat ...
- JavaScript arguments对象浅析
arguments对象 概念 用法 属性 arguments对象 概念 arguments 是一个类数组对象.代表传给一个function的参数列表. 用法 function a() { consol ...
- thinkphp 接收文件并处理
html前台文件,上传到控制器,thinkphp处理它 前台 <form action="{:url('product/brand_addcl')}" enctype=&qu ...
- Bugku-CTF加密篇之affine(y = 17x-8 flag{szzyfimhyzd})
affine y = 17x-8 flag{szzyfimhyzd} 答案格式:flag{*} 来源:第七届山东省大学生网络安全技能大赛
- bugku 多种方法解决
首先打开链接发现是一个exe文件 实在是想不出办法了 只能回去看提示 说会有一张图片 不知道怎么就打开了hxd 然后拖进去 发现了一串 用图片base64加密的码 然后在网页中找到 解码 工具 htt ...
- 简单实现一个button控制两种状态
<button class="btn a-bgcolor" data-toggle="tooltip" data-placement="left ...
- 使用js为表格添加一行
今天同事问了我一个问题,为表格添加新的行,我用的js写了一下,代码如下: <!DOCTYPE html> <html> <head> <meta charse ...
- Spring Cloud netflix feign【服务间通信】
一.简介 1,进程间通讯的本质是交换消息 2,服务间通信的两种方式 (1)RESTFul风格 (2)RPC风格 (3)两种风格的比较 3.基于RESTFul风格服务调用模型 4.基于Spring Cl ...
- 升级 .net core3.1
下载sdk3.1版本 升级包 然后build之后看提示若有其他包版本太低则按照提示将其他包升级 build --> run 报错,修复bug(主要由于包更新之后有些方法或者属性被移除造成无法使用 ...
- 问题 A: 【贪心】排队接水
问题 A: [贪心]排队接水 时间限制: 1 Sec 内存限制: 128 MB[命题人:外部导入] 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种 ...