https://www.luogu.org/problemnew/show/P2689

#include<iostream>
#include<algorithm>
using namespace std;
int sx,sy,ex,ey,t,ans=1e9;//sx和sy为小明所在位置,ex和ey为小明想去的位置,ans为步数
char a[];//风向
void dfs(int step,int x,int y,int i){//深搜函数,step为当前步数,x和y为当前坐标,i是a数组下标
if(x==ex&&y==ey){//判断当前坐标是否为小明想去的位置
ans=min(ans,step);//ans变为当前步数和ans的较小值
return;//返回
}
if(i>t) return;
if(step>ans) return;//剪枝,如果当前步数大于当前最优解,就没有必要接着往下搜,返回上一步
if(a[i]=='E'&&x<ex) dfs(step+,x+,y,i+);//判断当前x坐标是否在终点的x坐标的左边,如果是就往东(右)走,如果不是就不执行,不然可能会越走越远
if(a[i]=='W'&&x>ex) dfs(step+,x-,y,i+);
if(a[i]=='S'&&y>ey) dfs(step+,x,y-,i+);
if(a[i]=='N'&&y<ey) dfs(step+,x,y+,i+);
dfs(step,x,y,i+);//留在原地,记住步数不能加一,我被这个坑了一次...
}
int main(){
cin>>sx>>sy>>ex>>ey>>t;//输入
for(int i=;i<=t;i++){
cin>>a[i];//输入风向
}
dfs(,sx,sy,);//从起始坐标开始搜索,步数从0开始
if(ans==1e9) cout<<-;//如果ans依然等于初始值,则说明无法到达,输出-1
else cout<<ans;//输出最少步数
return ;
}

凑这么多字不容易啊...

洛谷P2689 东南西北的更多相关文章

  1. 洛谷 P2689 东南西北【模拟/搜索】

    题目描述 给出起点和终点的坐标及接下来T个时刻的风向(东南西北),每次可以选择顺风偏移1个单位或者停在原地.求到达终点的最少时间. 如果无法偏移至终点,输出“-1”. 输入输出格式 输入格式: 第一行 ...

  2. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  3. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  4. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  5. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  6. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

  7. 洛谷P1371 NOI元丹

    P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交  讨论  题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...

  8. 洛谷P1538迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  9. 洛谷八月月赛Round1凄惨记

    个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...

随机推荐

  1. python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域

    复习 1.字符串的比较: -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 2. 函数的参数 : 1)实参与形参:       -- 形参:在函数定义时()中出现的参数       ...

  2. 如何用MATLAB读stl并显示点云文件

    function [VertexData,FVCD,isBinary]=stl2matlab(stlfile) % STL2MATLAB reads STL-file, ASCII or binary ...

  3. jdbc访问pipelinedb

    建立Stream及视图 pipeline.execute("create stream caesar(name text,info json);") #创建stream,字段nam ...

  4. MongoDB集群的搭建

    一.环境准备 1.Centos7 2.mongodb3.4.10 3.三台机器IP分别是:192.168.1.100.192.168.1.135.192.168.1.136 二.mongdb数据库的安 ...

  5. c#Socket Tcp服务端编程

    创建一个socket服务类,绑定监听端口, 然后创建一个线程listen连接的客户端, 把监听到的客户端加入dictionary里面,以便于管理, 同时创建receive线程,循环接收数据加入list ...

  6. 2018-2019-2 20175218 实验一《Java开发环境的熟悉》实验报告

    实验内容.步骤与体会: 1.实验过程的理解,实验指导书中知识点的理解. (1)知道了JVM.JRE.JDK之间的区别. JVM就是我们熟知的Java虚拟机:JRE是Java运行环境:而JDK则是Jav ...

  7. R语言读取JSON数据

  8. Shell中sed----学习

    sed原理及使用 目录 前言 一.简介 二.处理流程 三.命令选项options 四.pattern 1. 模式空间 2. 模式空间的转换 3. 地址匹配 五.procedure 1. 替换命令: s ...

  9. functools 之 partial(偏函数)

    当函数的参数个数太多,需要简化时,使用functools.partial可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单.当然,decorator(装饰器) 也可以实现, ...

  10. 项目中的Launch_getSecurityEntitle_postlaunch

    研究透彻这个launch和postlaunch的执行过程才能改进他: //AppVTTicket.js ,launch:function(){ Ticketing.inciTick={}; this. ...