全是套路——BFS
#include <iostream>
#include <vector>
#include <string>
#include <vector>
#include <algorithm>
#include <stack>
#include <math.h>
#include <limits.h>
#include <set>
#include <memory>
#include <queue> using namespace std; struct point{
int x;
int y;
point *parent;
int step;
}; int map[][] = { , , , , , , , , ,
, , , , , , , , ,
, , , , , , , , ,
, , , , , , , , ,
, , , , , , , , ,
, , , , , , , , ,
, , , , , , , , ,
, , , , , , , , ,
, , , , , , , , , }; vector<point> p;
int BFS(point s,point e)
{
queue<point> q;
q.push(s);
while (!q.empty())
{
point start = q.front();
point *s1 = new point; s1->x = start.x; s1->y = start.y; s1->parent = start.parent;
q.pop();
if (start.x == e.x&&start.y == e.y)
{
p.push_back(start);
return start.step;
}
if (map[start.x + ][start.y] != && start.x + <= && start.x + >= )
{
point tmp = { start.x + , start.y, s1, start.step + };
map[start.x + ][start.y] = ;
q.push(tmp);
}
if (map[start.x - ][start.y] != && start.x - <= && start.x - >= )
{
point tmp = { start.x - , start.y, s1, start.step + };
map[start.x - ][start.y] = ;
q.push(tmp);
}
if (map[start.x][start.y + ] != && start.y + <= && start.y + >= )
{
point tmp = { start.x, start.y + , s1, start.step + };
map[start.x][start.y + ] = ;
q.push(tmp);
}
if (map[start.x][start.y - ] != && start.y - <= && start.y - >= )
{
point tmp = { start.x, start.y - , s1, start.step + };
map[start.x][start.y - ] = ;
q.push(tmp);
}
start.step++;
} } int main()
{
point s = { , }, e = { , };
BFS(s, e);
char p1[] = "abcd", *p2 = "ABCD", str[] = "xyz";
strcpy(str + , strcat(p1 + , p2 + ));
printf("%s", str);
point *point = &p[];
while (point->parent != NULL)
{
cout << point->x << " " << point->y << endl;
point = point->parent;
}
return ;
}
全是套路——BFS的更多相关文章
- 【HDU - 2102】A计划(bfs)
-->A计划 Descriptions: 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的 ...
- 一些关于Linux入侵应急响应的碎碎念
近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...
- CH模拟赛 皇后游戏
/* 做的时候手推了一下n=2的四种情况,再排一下序就可以了,证明不是很严谨,但我想这就行了,毕竟全是套路 */ #include<iostream> #include<cstdio ...
- 十连测Day1 题解
A. 奥义商店 有一个商店,n个物品,每个物品有一个价格和一种颜色. 有m个操作,操作有两种,一种是修改一个位置的价格,另一种是购买,每次购买指定一个公差d和一个位置k,找到包含这个位置k公差为d的同 ...
- elasticsearch-PHP第一天
遇到很大的问题就是,给边做边找原因,看官方文档,全英文看不懂.只能慢慢一步一步去做. 性子太急,真的不行,跨越性太大,卡一个小时多,才发现,连安装都没搞明白. 首先需要一个JAVA环境,上百度 ...
- Spring AOP (Spring 3.x 企业应用开发实战读书笔记第六章)
从面相对象编程到面相切面编程,是一种代码组织方式的进化. 每一代的代码组织方式,其实是为了解决当时面对的问题.比如写编译器和写操作系统的时候的年代当然要pop,比如写界面的时候当然要oop,因为界面这 ...
- android MessageQueue入门
接触安卓几年了.但是感觉一直不是很明白,东西太多了.反过来说就是自己太菜了.很多东西其实都是模凌两可,不熟悉,很多知识点都是知道一点,最多大家都这样用.没问题,事件长了也一直这样用的.但是有个问题,安 ...
- ZJOI2019Day2AFO记
题目读下来感觉,,,怎么看上去模型都这么简单全是套路题的样子.先想了下T3应该会50,是个计算几何,50够了..于是先写了40(10分等下再来写)这样就花掉了一个小时.....过去看T1,直接高斯消元 ...
- 洛谷T21778 过年
题目描述 有 n(1 \leq n \leq 10^5)n(1≤n≤105) 个小朋友,过年了,要发放 m(1 \leq m \leq 10^5)m(1≤m≤105) 次礼物. 每次发放,会给出三个参 ...
随机推荐
- Dimmer: 通过移动鼠标来改变 LED 的亮度
原文地址 - https://www.arduino.cc/en/Tutorial/Dimmer 调光器 本例展示了如何通过个人电脑发送数据到 Arduino / Genuino 开发板来控制一个LE ...
- (Tree) 101. Symmetric Tree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...
- 转:SAAS 测试
基于SaaS云计算网络性能测试指标研究 来源:中国软件评测中心 作者:马子明 投稿时间:2011-04-02 1.基于SaaS的云计算 SaaS(Software as a Service,软件即 ...
- Ultra Video Splitter & Converter
1. Video Splitter http://www.aone-soft.com/splitter.htm Ultra Video Splitter 是一款视频分割工具.可将一个巨大的AVI/Di ...
- 剑指Offer:面试题31——连续子数组的最大和(java实现)
问题描述 : 输入一个整数数组,数组里面有正数也有负数.数组中一个或连续几个整数组成一个子数组.求所有子数组的和的最大值.要求时间复杂度为O(n) 思路1:常规解法,不知道怎么描述了.. 代码: bo ...
- Unity3d程序运行的时候在unity3d标志哪里进不去的原因
我那个去,居然是有两个error..我郁闷了,unity编译器有error居然也能打包能apk.我真是醉了.搞了我几个小时.
- iisnode托管node
1.官方下载iisnode https://github.com/tjanczuk/iisnode 2.安装完成后在IIS中可见
- vi和vim 的常用操作
到文件末尾: ESC + shift G : 到文件头: G + G: 整块模式 快捷键 [不使用鼠标,来选择块] v 字符选择,会将光标经过的地方反白选择! V ...
- MVC KindEdit
先将下载的KindEditor放到项目中 View页面 <!DOCTYPE html><html><head> <meta name="vie ...
- 2016-09-19: linux后台运行
linux后台运行命令两种方式: 1. command & : 后台运行,你关掉终端会停止运行 2. nohup command & : 后台运行,你关掉终端也会继续运行 简介 L ...