算法入门经典第六章例题6-14abbott的复仇(abbott'srevenge)bfs算法实现

Tina Tina     2022-09-16     735

关键词:

 

Sample Input

3 1 N 3 3 
1 1 WL NR * 
1 2 WLF NR ER * 
1 3 NL ER * 
2 1 SL WR NF * 
2 2 SL WF ELF * 
2 3 SFR EL * 
0

Sample Output

(3,1) (2,1) (1,1) (1,2) (2,2) (2,3) (1,3) (1,2) (1,1) (2,1) 
(2,2) (1,2) (1,3) (2,3) (3,3)

 

题目的大意是,输入起点,离开起点时的朝向和终点,求一条最短路。 
每一个坐标上,都有进入坐标时的方向,即NEWS 。NEWS分别表示上,右,左,下,LFR分别表示向左,直走,向右。例如你输入,1 1 NR EL,对应图中的(1, 1)坐标点,表示:当你进入(1,1)时的转向时N,即向上,则此时你只能R,即右转;当你进入(1,1)时的转向是E,即向左,则此时你只能L,即左转。结合图示理解!

 

算法入门经典第六章例题6-15给任务排序

 假设有n个变量,还有m个二元组(u,v),分别表示变量u小于v。那么,所有变量从小到大排列起来应该是什么样子呢?例如,有4个变量a,b,c,d,若已知a<b,c<b,d<c,则这4个变量的排序可能是a<d<c<b。尽管还有其他可能... 查看详情

第六章二叉树算法入门经典结构体指针

运行效果图结构体指针实现#include<stdio.h>#include<stdlib.h>#include<string.h>#defineN10000intfailed,n,v,ans[N];chars[N];//保存读入结点typedefstructNode//结点类型{ intflag;//是否被赋值过 intnumber;//结点值 structNo 查看详情

第六章部分例题

 6-4自己先敲了一遍虽然可以完成书上的功能但是漏洞百出1#include<iostream>2#include<cstdio>3#include<cstring>45usingnamespacestd;67constintmaxn=100000+100;89chartxt[maxn];10intnext[maxn];1112intmain()13{1 查看详情

第六章部分例题

 没看解答敲了一遍,发现自己题目的理解能力有点差 1#include<iostream>2#include<cstdio>34usingnamespacestd;56structNode7{8charvalue;9Node*ch1;10Node*ch2;11Node*ch3;12Node*ch4;1314Node():ch1(NULL),ch2(NULL 查看详情

第六章例题

 1#include<cstdio>2#include<cstring>34usingnamespacestd;56intbtr[1<<20];789intmain()10{11intD,I;1213while(scanf("%d%d",&D,&I)==2)14{15memset(btr,0,sizeof(btr));1617intk; 查看详情

第六章部分例题

1#include<iostream>2#include<sstream>34usingnamespacestd;56constintmaxn=100000;7intn;8intpostorder[maxn],inorder[maxn];9intlh[maxn],rh[maxn];101112boolread_list(int*a)13{14stringline;1516i 查看详情

第六章部分例题

 1#include<iostream>2#include<cstdio>3#include<set>4#include<cstring>56usingnamespacestd;78constintmaxn=1000;9intUG[maxn][maxn];10intvis[maxn];11charstr[1024];12intin[maxn 查看详情

dfs与dp算法之关系与经典入门例题(代码片段)

...具体代码dp思路解题思路具体代码声明本文不介绍dfs、dp算法的基础思路,有想了解的可以自己找资源学习。本文适合于刚刚接触dfs和dp算法的人,发现两种算法间的内在联系。本人算法之路走之甚短,如果理解出现问题欢迎大家... 查看详情

算法入门经典-第五章例题5-7丑数

#include<iostream>#include<vector>#include<queue>#include<set>usingnamespacestd;typedeflonglongll;constintcoeff={2,3,5};intmain(){//一些常见的优先队列,STL提供了更为简单的定义方法//对于任意丑数x则2x,3x,5x也 查看详情

有关int范围的例题(算法竞赛入门经典)

对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半。经过若干次这样的变换,一定会使n变为1。例如,3→10→5→16→8→4→2→1。输入n,输出变换的次数。n≤109。样例输入:3样例输出:71#include<iostream>2#... 查看详情

算法竞赛入门经典例题3-4回文串

输入一个字符串。求出当中最长的回文子串。子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看同样。如abba和yyxyy。在推断时,应该忽略全部标点符号和空格。且忽略大写和小写。但输出应保持原... 查看详情

算法入门经典-第七章例题7-1除法

除法输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2<=n<=79.样例输入:62样例输出:79546/01238=6294736/01528=62#include<stdio.h>#include<string.h>intmain(){intn;//x/y=nx用abcde表示... 查看详情

算法入门经典-第七章例题7-2八皇后问题

原本利用回溯思想解决的经典八皇后问题,其实也是可以用递归解决的~八皇后的递归解决思路:从第一行开始,依次判断0~8列的哪一列可以放置Queen,这样就确定了该行的Queen的位置,然后行数递增,继而递归实现下一行的判断... 查看详情

算法入门经典-第五章例题6-10下落的树叶

给一颗二叉树,每个节点都有一个水平位置:左子结点在它的左边一个单位,右子节点在右边一个单位。从左向右输出每个水平位置的所有节点的权值之和。如图所示,从左到右的三个位置权和分别为7,11,3,按照递归(先序)方... 查看详情

uva816abbott的复仇

题目链接:https://uva.onlinejudge.org/external/8/816.pdf紫书:P165题意:有一个最多包含9*9个交叉点的迷宫。输入起点、离开起点时的朝向和终点,求一条最短路(多解时任意输出一个即可)。分析:BFS的结点对状态转移的影响的因素有... 查看详情

第六章例题二叉树层次遍历

 1.指针实现#include<iostream>#include<vector>#include<queue>#include<cstdio>#include<cstring>usingnamespacestd;#definemaxn100structNode{boolhave_value;intvalue;/*节点结构体*/ 查看详情

算法入门经典-第五章例题5-6团体队列

题目背景队列和优先级队列是大多数计算机科学家都知道的数据结构。但是团队队列却不被人熟知,尽管在生活中经常出现。比如,午餐时间的食堂门口的队列就是一个团队队列。在一个团队队列中,每个元素属于一个团队。如... 查看详情

机试指南第六章-搜索-例题自解(代码片段)

枚举:枚举是最简单也是最直白的搜索方式,它依次尝试搜索空间中所有的解,测试其是否符合条件,若符合则输出答案,否则继续测试下一组解。例6.1百鸡问题#include<iostream>usingnamespacestd;intmain()intn;while(cin>>n)for(intx=0;x... 查看详情