Algorithm --> 棋盘中求出A到B的最小步数
求出A到B的最小步数
给定象棋盘,以及位置A和B, 求出从A到B的最小步数
Input
2 -->case 个数
9 9 -->棋盘大小
3 5 2 8 --> 起始位置
20 20
2 3 7 9
Output
代码:
#include <cstdio>
#include <iostream>
#include <string.h> using namespace std;
#define MAX 1000 //八个方向
int o[][] = { { , }, { , - }, { -, }, { -, - }, { -, - }, { -, }, { , - }, { , } }; int R, C;
int _sX, _sY, _eX, _eY; //起始坐标
int graph[MAX][MAX];
int Answer; void DFS( int sX, int sY, int cnt )
{
if( sX < || sX > R || sY < || sY > C )
{
return;
} if( sX == _eX && sY == _eY )
{
if( Answer > cnt ) //求取最小步数 Answer
{
Answer = cnt;
}
} if( graph[sX][sY] == || graph[sX][sY] > cnt ) //当前格子没走或者值比cnt大,取较小值
{
graph[sX][sY] = cnt;
for( int i = ; i < ; i++ )
{
DFS( sX + o[i][], sY + o[i][], cnt + );
}
}
} int main( int argc, char** argv )
{
int tc, T; freopen( "input_chess.txt", "r", stdin ); cin >> T;
for( tc = ; tc < T; tc++ )
{
memset( graph, , sizeof( graph ) ); cin >> R >> C;
cin >> _sX >> _sY >> _eX >> _eY; graph[_sX][_sY] = ; Answer = MAX; DFS( _sX, _sY, ); cout << Answer << endl;
} return ;
}
输入文件:
Algorithm --> 棋盘中求出A到B的最小步数的更多相关文章
- iOS中求出label中文字的行数和每一行的内容
今天遇到一个需求,需要计算label中文字的行数.想了好久也没想到好的解决方法,就在网上找了下.结果发现一篇文章是讲这个的.这部分代码不但能够求出一个label中文字行数,更厉害的是能够求出每一行的内 ...
- 2d游戏中求出一个向量的两个垂直向量
function cc.exports.VerticalVector(vec)--求出两个垂直向量 local result = {} result[1] = cc.p(vec.y/vec.x,-1) ...
- 通过日期在js中求出判断间隔天数,周期等实现分享
在我们在项目的时候,可能出现这样的一种情况,有一个开始时间和一个结束时间,而这两个时间用$('#StartTime').val(); 取出来的时候又是datetime 类型,我们需要求这个时间中的间隔 ...
- 海量数据处理 - 10亿个数中找出最大的10000个数(top K问题)
前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些. 先拿10000个数建堆, ...
- 海量数据中找出前k大数(topk问题)
海量数据中找出前k大数(topk问题) 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小 ...
- hdu 1595 find the longest of the shortest【最短路枚举删边求删除每条边后的最短路,并从这些最短路中找出最长的那条】
find the longest of the shortest Time Limit: 1000/5000 MS (Java/Others) Memory Limit: 32768/32768 ...
- 防御性编程习惯:求出链表中倒数第 m 个结点的值及其思想的总结
防御性编程习惯 程序员在编写代码的时候,预料有可能出现问题的地方或者点,然后为这些隐患提前制定预防方案或者措施,比如数据库发生异常之后的回滚,打开某些资源之前,判断图片是否存在,网络断开之后的重连次数 ...
- 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。
主要掌握String中的方法 char[] toCharArray() 将此字符串转换为一个新的字符数组. int indexOf(String str) 返回 ...
- 【C语言】输入一组整数,求出这组数字子序列和中最大值
//输入一组整数.求出这组数字子序列和中最大值 #include <stdio.h> int MAxSum(int arr[],int len) { int maxsum = 0; int ...
随机推荐
- hdu5820 Lights
主席树 但是能够想到题解的做法很难 #include <stdio.h> #include <string.h> #include <vector> #includ ...
- JustMock .NET单元测试利器(二)JustMock基础
JustMock API基础 Mock是Telerik®JustMock框架中的主要类.Mock用于创建实例和静态模拟,安排和验证行为. 本文将介绍 "Mock"的基本用法: 首先 ...
- 弹出层罩子html(上传照片弹出请等待后面的代码不能修改)
一,效果 二,素材 三,代码 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> ...
- Git Compare with base,比较大文件时,长时间等待,无法加载
问题 当使用Git比较一个大文件(几十兆数量级)版本见差异时,会一直等待加载,且内存消耗很大,导致其他进程很难执行.任务管理器中,可以看到此时的TortoiseGitMerge吃掉3G左右的内存. 原 ...
- I2C总线通讯协议
I2C总线通讯协议 1. I2C总线简介 I2C是Inter-Integrated Circuit的简称,读作:I-squared-C.由飞利浦公司于1980年代提出,为了让主板.嵌入式系统或手机用以 ...
- IOS开发之App被拒原因
新手入门,简单记录一下Ipa提交给苹果公司后,有可能会被驳回的原因,欢迎补充和纠正! 原因: 1.ipa功能缺陷,譬如不能正常登陆.界面打不开.支付调不起等测试过程中未发现的Bug,实在是不应该!!! ...
- controller层中,参数的获取方式以及作用域的问题
package com.krry.web; import javax.servlet.http.HttpServletRequest; import org.springframework.stere ...
- Python基础_如何用pip安装文件
与其他语言相比,Python的一个很大的优势是由丰富的资源库,这就需我们按照自己的来安装文件和包.本节以在windows系统下安装pygame 为例来讲述一下安装步骤. 1. 检测python中有没有 ...
- [POI2014]HOT-Hotels
题目描述 There are towns in Byteotia, connected with only roads. Each road directly links two towns. All ...
- WC2006水管局长(加强)
倒过来就变成了加边 然后就直接LCT # include <stdio.h> # include <stdlib.h> # include <iostream> # ...