hihoCoder 1308:搜索二·骑士问题(BFS预处理)
题意
中文题意。
思路
对于每一个骑士,可以先预处理出到达地图上某个点的需要走的步数,然后最后暴力枚举地图上每一个点,让三个骑士走过的距离之和最小即可。
#include <bits/stdc++.h>
using namespace std;
const int INF = 300;
const int N = 1e5 + 10;
#define fir first
#define sec second
typedef long long LL;
typedef pair<int, int> pii;
char s[5];
int dx[] = {2, 2, -2, -2, 1, 1, -1, -1}, dy[] = {1, -1, 1, -1, 2, -2, 2, -2};
int xx[3], yy[3], ans, dis[3][9][9];
void BFS(int x, int y, int dis[9][9]) {
for(int i = 0; i < 8; i++)
for(int j = 0; j < 8; j++) dis[i][j] = INF;
queue<pii> que;
que.push({x, y}); dis[x][y] = 0;
while(!que.empty()) {
pii now = que.front(); que.pop();
x = now.fir, y = now.sec;
for(int i = 0; i < 8; i++) {
int nx = x + dx[i], ny = y + dy[i];
if(nx < 0 || nx >= 8 || ny < 0 || ny >= 8) continue;
if(dis[nx][ny] == INF)
dis[nx][ny] = dis[x][y] + 1, que.push({nx, ny});
}
}
}
int main() {
int t; scanf("%d", &t);
while(t--) {
for(int i = 0; i < 3; i++) {
scanf(" %s", s);
int x = s[0] - 'A', y = s[1] - '1';
BFS(x, y, dis[i]);
}
int ans = INF;
for(int i = 0; i < 8; i++)
for(int j = 0; j < 8; j++)
if(dis[0][i][j] + dis[1][i][j] + dis[2][i][j] < ans)
ans = dis[0][i][j] + dis[1][i][j] + dis[2][i][j];
printf("%d\n", ans);
}
return 0;
}
hihoCoder 1308:搜索二·骑士问题(BFS预处理)的更多相关文章
- hiho #1308 : 搜索二·骑士问题
#1308 : 搜索二·骑士问题 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi:小Ho你会下国际象棋么? 小Ho:应该算会吧,我知道每个棋子的移动方式,马走日象 ...
- 【hihocoder 1308】搜索二·骑士问题
[题目链接]:http://hihocoder.com/problemset/problem/1308 [题意] [题解] 用bfs处理出3个骑士到每个点的最短路; 然后枚举最后3个骑士到了哪一个点. ...
- hihoCoder搜索二·骑士问题
#include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> ...
- [cdoj1380] Xiper的奇妙历险(3) (八数码问题 bfs + 预处理)
快要NOIP 2016 了,现在已经停课集训了.计划用10天来复习以前学习过的所有内容.首先就是搜索. 八数码是一道很经典的搜索题,普通的bfs就可求出.为了优化效率,我曾经用过康托展开来优化空间,甚 ...
- bzoj 1671: [Usaco2005 Dec]Knights of Ni 骑士【bfs】
bfs预处理出每个点s和t的距离d1和d2(无法到达标为inf),然后在若干灌木丛格子(x,y)里取min(d1[x][y]+d2[x][y]) /* 0:贝茜可以通过的空地 1:由于各种原因而不可通 ...
- BZOJ-1189 紧急疏散evacuate BFS预处理+最大流+二分判定+神建模!!
绝世污题,垃圾题,浪费我一整天青春! 1189: [HNOI2007]紧急疏散evacuate Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1262 ...
- lintcode:搜索二维矩阵II
题目 搜索二维矩阵 II 写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数. 这个矩阵具有以下特性: 每行中的整数从左到右是排序的. 每一列的整数从上到下是排序的. 在每一行或每一列中没 ...
- lintcode :搜索二维矩阵
题目: 搜索二维矩阵 写出一个高效的算法来搜索 m × n矩阵中的值. 这个矩阵具有以下特性: 每行中的整数从左到右是排序的. 每行的第一个数大于上一行的最后一个整数. 样例 考虑下列矩阵: [ [1 ...
- HDU - 1430 魔板 (bfs预处理 + 康托)
对于该题可以直接预处理初始状态[0, 1, 2, 3, 4, 5, 6, 7]所有可以到达的状态,保存到达的路径,直接打印答案即可. 关于此处的状态转换:假设有初始状态为2,3,4,5,0,6,7,1 ...
随机推荐
- WPF RelativeSource的使用
<Window x:Class="XamlTest.Window15" xmlns="http://schemas.microsoft.com/win ...
- Win8Metro(C#)数字图像处理--2.29图像除法运算
原文:Win8Metro(C#)数字图像处理--2.29图像除法运算 [函数名称] 图像除法函数DivisionProcess(WriteableBitmap src, WriteableBit ...
- HUSTOJ的Windows版评判内核(限制内存使用)
HUSTOJ的Windows版评判内核(一) 作者:游蓝海 个人主页:http://blog.csdn.net/you_lan_hai 2013.4.9 注:最新版本项目地址:https://gith ...
- Java虚拟机性能监控与调优实战
From: https://c.m.163.com/news/a/D7B0C6Q40511PFUO.html?spss=newsapp&fromhistory=1 Java虚拟机性能监控与调 ...
- Natively Compiled Code: A Comeback?
RAD Studio and Natively Compiled Code In today's development landscape, natively compiled code is ma ...
- Qt实现网络播放器
写了这么多的博客,关于网络的还不算多,经常有人询问一些关于网络传输.制作在线试听及下载音乐.构造及解析数据等的一些问题,今天就在这里一并讲解. 网络操作: 主要涉及:QNetwor ...
- 使用 docker 搭建 nginx+php-fpm 环境 (两个独立镜像)
:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...
- 自己动手写jQuery插件---Tip(提示框)
对jQuery相信很多同学和我一样平时都是拿来主义,没办法,要怪只能怪jQuery太火了,各种插件基本能满足平时的要求.但是这毕竟不是长久之道,古人云:“授之以鱼,不如授之以渔”. 为了方便之前没有接 ...
- arcgis api for js 4.X 出现跨域问题
arcgis api for js 4.X 出现跨域问题 XMLHttpRequest cannot load http://localhost/4.3/4.3/esri/workers/mutabl ...
- shell日期整理
date 当前日期+时间 # 日期格式化:date+"" - date +"%Y%m%d" 不带横杠分隔符的日期20160107 date +"%Y% ...