算法 java c c++-算法求解,先谢谢大家了

问题描述

算法求解,先谢谢大家了

现有16x16的地图,左上方的坐标为(0,0),右下角的坐标为(15,15)。地图上有一个机器人,机器人可以接收3个指令,左转(字母L表示),右 转(R表示),向前移动一格(M表示)。机器人的初始状态是他的位置(X1,Y1),以及机器人的朝向(向北为N,向南为S,向东为E,向西为W)。最终 状态是他的位置在(X2,Y2)。现在程序接收的参数是X1,Y1,他的最初朝向,X2,Y2,程序要计算并返回机器人由最初状态抵达最终状态所需的指令。走过的路径必须最短的。
举例,输入 X1=2, Y1=2, 最初位置=N;
X2= 4, Y2=4;机器人初始状态在(2,2)面向北,最终状态,机器人要抵达(4,4)
计算结果可能有多个,但只要返回一个,比如,
RMMRMM 右转一次,走两步,再右转一次,再走两步就到达目的。

时间: 2024-08-02 11:54:06

算法 java c c++-算法求解,先谢谢大家了的相关文章

java算法-java求教,算法竞赛入门经典 3.4 最长回文子串

问题描述 java求教,算法竞赛入门经典 3.4 最长回文子串 java新手求教,关键是怎么保存s[i]在buf中的位置,谢谢 解决方案 string longestPalindromeDP(string s) { int n = s.length(); int longestBegin = 0; int maxLen = 1; bool table[1000][1000] = {false}; for (int i = 0; i < n; i++) { table[i][i] = true;

java分析html算法(java网页蜘蛛算法示例)_java

遇到复杂而繁琐的html页面大家都望而却步.因为很难获取到相应的数据. 最古老的办法的是尝试用正则表达式,估计那么繁琐的东西得不偿失,浪费我们宝贵的时间. 第二个办法用开源组织htmlparser的包,这个是一个比较老的项目,但是效果估计不是很好,好像不可以深入分析html,只能分析5级的结构: 我这里有个htmlparser的源代码,可以获取所有的超链接的 复制代码 代码如下:    /* * To change this template, choose Tools | Templates 

java实现插入排序算法_java

1.算法概念. 每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序. 2.算法思想. 假设待排序的记录存放在数组R[1..n]中.初始时,R[1]自成1个有序区,无序区为R[2..n].从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区. public static void insertSort(int[] array) { int len = array.length; for (int i = 1; i < len;

无向图的最短路径算法JAVA实现(转)

一,问题描述 给出一个无向图,指定无向图中某个顶点作为源点.求出图中所有顶点到源点的最短路径. 无向图的最短路径其实是源点到该顶点的最少边的数目. 本文假设图的信息保存在文件中,通过读取文件来构造图.文件内容的格式参考这篇文章第一部分.   二,算法实现思路 无向图的最短路径实现相对于带权的有向图最短路径实现要简单得多. 源点的最短路径距离为0,从源点开始,采用广度优先的顺序,首先将与源点邻接的顶点的路径求出,然后再依次求解图中其他顶点的最短路径. 由于顶点的最短路径的求解顺序 是一个 广度优先

使用java实现LIS算法,出操队形的问题_java

假设有序列:2,1,3,5,求一个最长上升子序列就是2,3,5或者1,3,5,长度都为3. LIS算法的思想是: 设存在序列a. ① 如果只有一个元素,那么最长上升子序列的长度为1: ② 如果有两个元素,那么如果a[1]>a[0],则最长上升子序列的长度为2,a[1]为该最长上升子序列的最后一个元素;若a[1]<a[0],则最长上升子序列的长度为1,a[0]和a[1]均为  其最长上升子序列的最后一个元素. ③ 如果由三个元素,那么如果a[2]>a[0],a[2]>a[1],则a[

算法 数据结构 java-以下java的最短路径算法应该如何实现

问题描述 以下java的最短路径算法应该如何实现 不知道怎么用额. 解决方案 http://blog.csdn.net/javaman_chen/article/details/8254309 解决方案二: http://download.csdn.net/detail/gareth_liao/5100648 解决方案三: 谢谢回复 解决方案四: 最短路径算法(java实现)

这咯算法有点看不懂,求解?

问题描述 这咯算法有点看不懂,求解? 解决方案 ?:这是条件运算符,其结合性是从右到左,当其嵌套使用时,应该将最后一个问号与紧靠其右的冒号配对. 所以(((x)<(y)?-1:((x))==((y))?0:1指的是: (((x))<(y))?-1:(((x))==((y))?0:1) 即如果x<y成立,取-1的值,否则取若((x))==((y))?0:1这部分结果. 解决方案二: x x==y 返回0 x>y 返回1 解决方案三: 这是c语言里面的宏定义,对于为什么前后加括号,因为

Java实现快速排序算法(Quicktsort)

 这篇文章主要介绍了Java实现快速排序算法(Quicktsort),有需要的朋友可以参考一下 快速排序算法介绍 快速排序和归并排序都使用分治法来设计算法,区别在于归并排序把数组分为两个基本等长的子数组,分别排好序之后还要进行归并(Merge)操作,而快速排序拆分子数组的时候显得更有艺术,取一个基准元素,拆分之后基准元素左边的元素都比基准元素小,右边的元素都不小于基准元素,这样只需要分别对两个子数组排序即可,不再像归并排序一样需要归并操作.基准元素的选取对算法的效率影响很大,最好的情况是两个子数

用java写装载问题(用贪心算法和分支界限算法)

问题描述 用java写装载问题(用贪心算法和分支界限算法) 用java写算法中的装载问题,代码~(用分支限界算法和贪心算法写)... 解决方案 http://www.cnblogs.com/tianshuai11/archive/2012/05/04/2490852.html