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循环一直到机器人跳出来】
...
随机推荐
- thinkphp一些经常用到的标签
volist标签(用于模板中的数组循环输出) //length:循环多少次 {volist name='list' id='vo' length='4'} <span>{$vo.name} ...
- C++雾中风景番外篇4:GCC升级二三事
最近将手头上负责的项目代码从GCC 4.8.2升级到了GCC 8.2.(终于可以使用C++17了,想想后续的开发也是很美好啊~~)不过这个过程之中也遇到了一些稀奇古怪的问题,在这里做一个简单的记录,希 ...
- javascript当中null和undefined的==和===的比较
1.用init-param获取: 例:1.1.1 ServletHello1.java:package com;import java.io.IOException;import java.io.Pr ...
- bugku 细心
打开链接会看到提醒404 显示不能访问 然后用御剑 扫描一下 然后会发现另一个 网址 然后打开 发现 有一个/result.php然后改一下 网址会发现 另一个网页 然后利用提示 将链接的后缀名改成? ...
- 威佐夫博奕(Wythoff Game)poj 1067
有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 这种情况下是颇为复杂的.我们用(ak,bk)(ak ≤ bk ,k=0,1,2,…, ...
- 【音乐欣赏】《Sunflower》 - Post Malone / Swae Lee
曲名:Sunflower 作者:Post Malone.Swae Lee [00:02.29]Ayy, ayy, ayy, ayy (ooh) [00:09.49]Ooh, ooh, ooh, ohh ...
- 每天进步一点点------基础实验_13_有限状态机 :Mealy型序列检测器
/********************************************************************************* * Company : * Eng ...
- via/route blockage/size blockage/wire/pin guide/pin blockage/partition
1.via 中文名称互连线通孔.我们知道,芯片的连线有不同层的金属互连线相互连接.而Via的作用就是连接这些不同层的金属.如下图所示: 一个完整的通孔是由三层组成的,包括两个互连层和一个cut层,cu ...
- C语言进行csv文件数据的读取
C语言进行csv文件数据的读取: #include <stdio.h> #include <string.h> #include <malloc.h> #inclu ...
- STM32F103之GPIO学习记录
9 GPIO:通用I/O口 AFIO:可供选择的I/O口 9.1 GPIO功能描述 每一个通用的I/O口都有: 两个32位的配置寄存器(配置寄存器低和配置寄存器高): 两个32位的数据寄存器(输入数据 ...