BNUOJ 4358 左手定则 搜索

题目链接:http://acm.bnu.edu.cn/bnuoj/problem_show.php?pid=4358

一道很好的搜索题,要注意DFS函数的写法,特别是return的写法。

View Code
 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 using namespace std;
 5 char map[105][105];
 6 int a[105][105][4];
 7 int sx,sy,tx,ty,flag,n,m;
 8 int px[4][4]=
 9 {
10     0,-1,0,1,
11         0,1,0,-1,
12         1,0,-1,0,
13         -1,0,1,0
14 };
15 int py[4][4]=
16 {
17     -1,0,1,0,
18         1,0,-1,0,
19         0,-1,0,1,
20         0,1,0,-1
21 };
22 int f[4][4]=
23 {
24     2,0,3,1,
25         3,1,2,0,
26         1,2,0,3,
27         0,3,1,2
28 };
29 void DFS(int x,int y,int v)
30 {
31     int i,xx,yy,tv;
32     if(flag)return ;
33     if(x==tx&&y==ty)
34     {
35         flag=1;
36         return ;
37     }
38     for(i=0;i<4;i++)
39     {
40         xx=x+px[v][i];
41         yy=y+py[v][i];
42         if(xx<1||xx>n||yy<1||yy>m||map[xx][yy]=='#')continue ;
43         tv=f[v][i];
44         if(a[xx][yy][tv]==-1)
45         {
46             a[xx][yy][tv]=1;
47             DFS(xx,yy,tv);
48         }
49         return ;
50     }
51 }
52 int main()
53 {
54     int i,j,v;
55     char ch;
56     while(scanf("%d%d",&n,&m)!=EOF)
57     {
58         
59         for(i=1;i<=n;i++)
60             for(j=1;j<=m;j++)
61             {
62                 //scanf("%c",&map[i][j]);
63                 cin>>map[i][j];
64                 if(map[i][j]=='S')
65                 {
66                     sx=i;
67                     sy=j;
68                     
69                 }
70                 if(map[i][j]=='T')
71                 {
72                     tx=i;
73                     ty=j;
74                 }
75             }
76        cin>>ch;
77         //    scanf("%c",&ch);
78             if(ch=='N')v=0;
79             else if(ch=='S')v=1;
80             else if(ch=='W')v=2;
81             else v=3;
82             flag=0;
83             memset(a,-1,sizeof(a));
84             a[sx][sy][v]=1;
85             DFS(sx,sy,v);
86             if(flag)printf("YES\n");
87             else printf("NO\n");
88     }
89     return 0;
90 }

转载于:https://www.cnblogs.com/zhaoguanqin/archive/2012/04/16/2452047.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS安装Confluence Wiki步骤

参考&#xff1a;http://supernetwork.blog.51cto.com/2304163/1187066参考&#xff1a;http://yjiang.tk/?p1085需要的文件CentOS-6.5-x86_64-minimal.isojre-7u67-linux-x64.rpmatlassian-confluence-5.4.4-x64.binmysql-connector-java-5.1.32-bin.jarconfluence5.1-crack.…

使用VS2015编写C/C++开始步骤

下面围绕如何建立工程、如何添加代码和运行展开说明。 一、建立工程 &#xff08;1&#xff09;打开VS2015&#xff0c;然后在菜单栏中选择file—>New—>Project&#xff1b; &#xff08;2&#xff09;在弹出的界面中&#xff0c;选择Win32&#xff0c;编辑工程名字、…

PWM调光方法在LED亮度调节中的应用

LED 是一种固态电光源&#xff0c; 是一种半导体照明器件&#xff0c;其电学特性具有很强的离散性。它具有体积小、机械强度大、功耗低、寿命长&#xff0c; 便于调节控制及无污染等特征&#xff0c;有极大发展前景的新型光源产品。LED 调光方法的实现分为两种&#xff1a; 模拟…

redhat rpmforge epel 安装源配置

参考阅读 epel 直接安装 RPMforge for CentOS 6 The default RPMforge repository does not replace any CentOS base packages. In the past it used to, but those packages are now in a separate repository (rpmforge-extras) which is disabled by default. You can fi…

leetcood学习笔记-2-两数相加

题目描述&#xff1a; 方法一&#xff1a; # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val x # self.next Noneclass Solution:def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:cur…

Forward框架的逆袭:解析Forward+渲染

转载请注明出处为KlayGE游戏引擎&#xff0c;本文地址为http://www.klayge.org/2012/04/21/forward%e6%a1%86%e6%9e%b6%e7%9a%84%e9%80%86%e8%a2%ad%ef%bc%9a%e8%a7%a3%e6%9e%90forward%e6%b8%b2%e6%9f%93/ AMD在7900系列显卡发布的时候同时推出了Leo demo&#xff0c; 并说明它…

Java NIO学习系列三:Selector

前面的两篇文章中总结了Java NIO中的两大基础组件Buffer和Channel的相关知识点&#xff0c;在NIO中都是通过Channel和Buffer的协作来读写数据的&#xff0c;在这个基础上通过selector来协调多个channel以同时读写数据&#xff0c;本文我们就来学习一下selector。 Java NIO中引入…

Java JTable3

预览&#xff1a; 代码 &#xff1a; /*** */ package com.han;import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; imp…

关于ASCII字符的那些事儿

1、单字符一般用单引号加一个字符表示&#xff0c;比如字符1表示为‘1’&#xff0c;而数字1直接表示为1&#xff1b; char ch 1 ;int num 1;2、计算机用数字来存储字符&#xff0c;比如字符1&#xff0c;在计算机里面为49&#xff08;十进制&#xff09;&#xff1b;而数字…

JqueryMobile学习之二---对话框

对话框 通过在链接中添加data-rel”dialog”的属性&#xff0c;可以使链接页面的显示方式变为对话框。给显示的对话框加入切换的效果也是一个不错的选择 例如我们将about的链接变成一个对话框并加入相应的切换效果。代码如下 <p><a href"#about" data-rel&q…

“leave the world behind”十一快乐出行

这个十一你打算怎么过&#xff1f;每天睡到自然醒&#xff0c;然后闷在家里埋头上网&#xff1f;选择晴朗好天气出去逛街&#xff0c;四处淘宝贝&#xff0c;淘美食&#xff1f;还是选择一个好的路线出去玩一周&#xff1f;其实行无论宅着还是选择出行&#xff0c;一定要让自己…

分享一个文件上传工具类

文件上传状态枚举类&#xff1a; View Code 1 package com.hoo.enums;2 3 4 5 /**6 7 * <b>function:</b> 文件上传状态8 9 * package com.hoo.enums 10 11 * fileName UploadState.java 12 13 * createDate 2010-10-11 下午1…

静态库和动态库的区别

库是写好的&#xff0c;现有的&#xff0c;成熟的&#xff0c;可以复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人的代码都从零开始&#xff0c;因此库的存在意义非同寻常。 本质上来说&#xff0c;库是一种可执行代码的二进制形式&#xff0c;可…

257. Binary Tree Paths

1、问题描述 2、代码&#xff08;非本人所写&#xff0c;十分精彩的C代码&#xff09; int pathsNum(struct TreeNode* root); void Traverse(struct TreeNode* root, char** array, char* spre, int* pindex); char* stringAdd(char* s, int val);char** binaryTreePaths(stru…

HDOJ树形DP专题之Centroid

题目链接 这题跟Balance Act那题差不多&#xff0c;求图的质点。我直接将那题改了一下提交&#xff0c;结果PE了一次&#xff0c;又WA了一次&#xff0c;最后发现是单case&#xff0c;多case的提交为什么WA呢&#xff1f; View Code 1 #include <stdio.h>2 #include <…

LAMP平台--部署Discuz论坛

环境&#xff1a;为了推广公司的产品并为客户服务提供一个交流平台&#xff0c;公司购买了一套Discuz论坛系统&#xff0c;要求安装到现有的LAMP服务器中&#xff0c;并简单划分论坛版块。需求&#xff1a;部署论坛服务器&#xff0c;安装Discuz论坛系统添加新区和版块产品发布…

ACM中java快速入门

2019独角兽企业重金招聘Python工程师标准>>> ACM中java快速入门 附&#xff1a; Chapter I. Java的优缺点各种书上都有&#xff0c;这里只说说用Java做ACM-ICPC的特点&#xff1a; (1) 最明显的好处是&#xff0c;学会Java&#xff0c;可以参加Java Challenge …

OV7725的帧率和PCLK寄存器设置

一、OV7725的PCLK的改变和以下几个寄存器有关&#xff1a; 1&#xff1a;OX0D&#xff08;COM4&#xff09;&#xff1b; ------------------------------------------------------------------------------------------------------------------ 0X0D COM4 41 …

演示:两台交换机成环后的STP计算原则

演示&#xff1a;两台交换机成环后的STP计算原则演示目标&#xff1a;理解两台交换机成环后&#xff0c;STP的计算原则&#xff0c;重点理解PID的作用。演示环境&#xff1a;如下图7.49所示。演示背景&#xff1a;上图所示的环境为两台交换机的生成树环境&#xff0c;其中S1有较…

引水入城

最近在搞提高组的题,这是某天早上给的T1 T1最难还行 原题目 最近考试考多了就是见题打暴力,打搜索, 然而这题真是搜索, 但是并不能只搜索,会T,没亲测,但一定有效 这并不是考试题,所以看看标签(理直气壮的理由) 是BFS啊... 那就用DFS吧 这里的DP一开始看没有什么感觉,但是做着做…