洛谷P2689 东南西北
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 东南西北的更多相关文章
- 洛谷 P2689 东南西北【模拟/搜索】
题目描述 给出起点和终点的坐标及接下来T个时刻的风向(东南西北),每次可以选择顺风偏移1个单位或者停在原地.求到达终点的最少时间. 如果无法偏移至终点,输出“-1”. 输入输出格式 输入格式: 第一行 ...
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP
题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...
- 洛谷P1710 地铁涨价
P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交 讨论 题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...
- 洛谷P1371 NOI元丹
P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交 讨论 题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...
- 洛谷P1538迎春舞会之数字舞蹈
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
- 洛谷八月月赛Round1凄惨记
个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...
随机推荐
- python的django基础篇
一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...
- rabbitmq3.6.5镜像集群搭建以及haproxy负载均衡
一.集群架构 后端75.103.69分别是3台rabbitmq节点做镜像集群,前端103用haproxy作为负载均衡器 二.安装rabbitmq节点 参照 https://www.cnblogs.co ...
- Excel VBA 连接各种数据库(一) VBA连接MySQL数据库
本文参考[东围居士]的cnblog博文 Excel.VBA与MySQL交互 在自己机器上调试成功,把调试中遇到的问题一并写出了. 本文主要涉及: VBA中的MySQL环境配置 VBA连接MySQL ...
- Java框架spring学习笔记(十七):事务操作
事务操作创建service和dao类,完成注入关系 service层叫业务逻辑层 dao层单纯对数据库操作层,在dao层不添加业务 假设现在有一个转账的需求,狗蛋有10000元,建国有20000元,狗 ...
- Python学习—框架篇之初识Django
什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有的W ...
- git clone失败
操作: $ git clone https://github.com/zjun615/DragListView.gitCloning into 'DragListView'...fatal: unab ...
- zabbix基础使用--添加ping监控
1.添加item key值表示的含义:icmpping[<target>,<packets>,<interval>,<size>,<timeout ...
- java8 LocalDateTime转unix时间戳(带毫秒,不带毫秒)
转载自:LocalDateTime To Timestamp Epoch Seconds And Milliseconds Convert LocalDateTime to seconds since ...
- java 得到项目路径
JavaEXTTomcatJSPWeb 一 相对路径的获得 说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目) String relativel ...
- docker-2 tomcat
启动容器命令 docker run -d -p 8080:8080 -v /root/tomcat/webapps:/usr/local/tomcat/webapps -v /root/tomcat/ ...