#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的更多相关文章

  1. 【HDU - 2102】A计划(bfs)

    -->A计划 Descriptions: 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的 ...

  2. 一些关于Linux入侵应急响应的碎碎念

    近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...

  3. CH模拟赛 皇后游戏

    /* 做的时候手推了一下n=2的四种情况,再排一下序就可以了,证明不是很严谨,但我想这就行了,毕竟全是套路 */ #include<iostream> #include<cstdio ...

  4. 十连测Day1 题解

    A. 奥义商店 有一个商店,n个物品,每个物品有一个价格和一种颜色. 有m个操作,操作有两种,一种是修改一个位置的价格,另一种是购买,每次购买指定一个公差d和一个位置k,找到包含这个位置k公差为d的同 ...

  5. elasticsearch-PHP第一天

    遇到很大的问题就是,给边做边找原因,看官方文档,全英文看不懂.只能慢慢一步一步去做.   性子太急,真的不行,跨越性太大,卡一个小时多,才发现,连安装都没搞明白.   首先需要一个JAVA环境,上百度 ...

  6. Spring AOP (Spring 3.x 企业应用开发实战读书笔记第六章)

    从面相对象编程到面相切面编程,是一种代码组织方式的进化. 每一代的代码组织方式,其实是为了解决当时面对的问题.比如写编译器和写操作系统的时候的年代当然要pop,比如写界面的时候当然要oop,因为界面这 ...

  7. android MessageQueue入门

    接触安卓几年了.但是感觉一直不是很明白,东西太多了.反过来说就是自己太菜了.很多东西其实都是模凌两可,不熟悉,很多知识点都是知道一点,最多大家都这样用.没问题,事件长了也一直这样用的.但是有个问题,安 ...

  8. ZJOI2019Day2AFO记

    题目读下来感觉,,,怎么看上去模型都这么简单全是套路题的样子.先想了下T3应该会50,是个计算几何,50够了..于是先写了40(10分等下再来写)这样就花掉了一个小时.....过去看T1,直接高斯消元 ...

  9. 洛谷T21778 过年

    题目描述 有 n(1 \leq n \leq 10^5)n(1≤n≤105) 个小朋友,过年了,要发放 m(1 \leq m \leq 10^5)m(1≤m≤105) 次礼物. 每次发放,会给出三个参 ...

随机推荐

  1. sas编程-日期相差计算函数 intnx

    sas编程-日期相差计算函数 intnx 示例代码: data _null_;    lastdate=intnx('year',today(),-100);    format lastdate  ...

  2. 异常:“System.Reflection.Metadata”已拥有为“System.Collections.Immutable”定义的依赖项

    参考动态执行T4模板:https://msdn.microsoft.com/zh-cn/library/bb126579.aspx 我项目是.NET Framework 4.5控制台应用程序写的. 执 ...

  3. [POJ3468] A Simple Problem with Integers (Treap)

    题目链接:http://poj.org/problem?id=3468 这题是线段树的题,拿来学习treap. 不旋转的treap. #include <cstdio> #include ...

  4. 给iOS开发新手送点福利,简述文本属性Attributes的用法

    给iOS开发新手送点福利,简述文本属性Attributes的用法   文本属性Attributes 1.NSKernAttributeName: @10 调整字句 kerning 字句调整 2.NSF ...

  5. SVN show log failed

    Q: SVN 不能显示日志 能正常update, commit,但是show log的时候报错 A:可能原因是服务器权限配置问题 修改配置文件svnserve.conf 和 authz, 修改前请先备 ...

  6. android 程序代码执行adb

    Runtime.getRuntime().exec("adb pull /dev/graphics/fb0 C:/fb1"); Runtime. getRuntime().exec ...

  7. oracle基础语法大全

    -----创建序列create sequence book_idINCREMENT BY 1 -- 每次加几个 START WITH 001 -- 从1开始计数 NOMAXVALUE -- 不设置最大 ...

  8. Windows Azure初体验

    目前在IT界,云这个概念的第一意思不再是词典里的解释了.不过它们还是有相同点的——也许确实会酝酿出一块大蛋糕,可也是飘在天上,众神分食之,与我等P民无关.所谓云,不过是网络时代发展到一定阶段的必然产物 ...

  9. js对象常用2中构造方法

    //js 对象的构造方法通常有2中情况: //第一种是通过json对象构造 var persion={ name:"孙悟空", age:40, eat:function () { ...

  10. jmeter上传文件搞了一天,才搞定,没高人帮忙效率就是低,赶紧记下来,以备后用

    先用谷歌浏览器抓包,抓到的包类似这样: 在jmeter里添加一个http请求,配置好参数,方法,端口,路径等, 勾选 在“同请求一起发送参数”里填写上面抓包的部分数据: 分别对应录入,勾选“编码” 我 ...