一道ZZ结论题,主要是来写一写交互题的。

我们要先知道一句话:

扶着墙是肯定可以走出简单迷宫的。

然后我们冷静分析问题。若这个迷宫是\(n\times m\)的,那么最多有\(2mn+n+m\)个墙壁。

由于题目中提到方格之间都联通且形成一棵,那么我们删去\(nm-1\)条边。

由于边界其中至多一半会经过一次,其余则不会经过内部边可能经过两次,因此摸着墙壁前进的步数上限为 \(2(nm+n+m+1)-3(n+m)=2nm-n-m-2\)。我们在观察一下数据范围,发现:

\(l>2nm\ge 2nm-n-m-2\)。因此我们摸着墙壁走是肯定可以在规定步数内走到终点的。

然后初始时我们面向右侧,因此左侧一定有墙,所以我们只需要一直沿着左侧墙壁走即可。

由于这是交互题,因此我们可以弄出一个非常精简的核心算法:

while (!reach_dest()) move_left();

以上参考于官方题解

然后注意一下交互题的事项即可。千万要注意请缓存,并且读进来不要连换行一起,会出锅的

CODE

#include<bits/stdc++.h>
using namespace std;
int n,m,l,d;
inline int reach_dest(void)
{
puts("reach_dest"); fflush(stdout);
int x; scanf("%d",&x); return x;
}
inline void move_left(void)
{
puts("move_left"); fflush(stdout);
int x; scanf("%d",&x);
}
int main()
{
scanf("%d%d%d%d",&n,&m,&l,&d);
while (!reach_dest()) move_left();
return 0;
}

LOJ #559. 「LibreOJ Round #9」ZQC 的迷宫的更多相关文章

  1. [LOJ#531]「LibreOJ β Round #5」游戏

    [LOJ#531]「LibreOJ β Round #5」游戏 试题描述 LCR 三分钟就解决了问题,她自信地输入了结果-- > -- 正在检查程序 -- > -- 检查通过,正在评估智商 ...

  2. [LOJ#530]「LibreOJ β Round #5」最小倍数

    [LOJ#530]「LibreOJ β Round #5」最小倍数 试题描述 第二天,LCR 终于启动了备份存储器,准备上传数据时,却没有找到熟悉的文件资源,取而代之的是而屏幕上显示的一段话: 您的文 ...

  3. [LOJ#516]「LibreOJ β Round #2」DP 一般看规律

    [LOJ#516]「LibreOJ β Round #2」DP 一般看规律 试题描述 给定一个长度为 \(n\) 的序列 \(a\),一共有 \(m\) 个操作. 每次操作的内容为:给定 \(x,y\ ...

  4. [LOJ#515]「LibreOJ β Round #2」贪心只能过样例

    [LOJ#515]「LibreOJ β Round #2」贪心只能过样例 试题描述 一共有 \(n\) 个数,第 \(i\) 个数 \(x_i\) 可以取 \([a_i , b_i]\) 中任意值. ...

  5. [LOJ#525]「LibreOJ β Round #4」多项式

    [LOJ#525]「LibreOJ β Round #4」多项式 试题描述 给定一个正整数 k,你需要寻找一个系数均为 0 到 k−1 之间的非零多项式 f(x),满足对于任意整数 x 均有 f(x) ...

  6. [LOJ#526]「LibreOJ β Round #4」子集

    [LOJ#526]「LibreOJ β Round #4」子集 试题描述 qmqmqm有一个长为 n 的数列 a1,a2,……,an,你需要选择集合{1,2,……,n}的一个子集,使得这个子集中任意两 ...

  7. [LOJ#522]「LibreOJ β Round #3」绯色 IOI(危机)

    [LOJ#522]「LibreOJ β Round #3」绯色 IOI(危机) 试题描述 IOI 的比赛开始了.Jsp 和 Rlc 坐在一个角落,这时他们听到了一个异样的声音 …… 接着他们发现自己收 ...

  8. loj #547. 「LibreOJ β Round #7」匹配字符串

    #547. 「LibreOJ β Round #7」匹配字符串   题目描述 对于一个 01 串(即由字符 0 和 1 组成的字符串)sss,我们称 sss 合法,当且仅当串 sss 的任意一个长度为 ...

  9. loj #535. 「LibreOJ Round #6」花火 树状数组求逆序对+主席树二维数点+整体二分

    $ \color{#0066ff}{ 题目描述 }$ 「Hanabi, hanabi--」 一听说祭典上没有烟火,Karen 一脸沮丧. 「有的哦-- 虽然比不上大型烟花就是了.」 还好 Shinob ...

随机推荐

  1. Kotlin入门(14)继承的那些事儿

    上一篇文章介绍了类对成员的声明方式与使用过程,从而初步了解了类的成员及其运用.不过早在<Kotlin入门(12)类的概貌与构造>中,提到MainActivity继承自AppCompatAc ...

  2. etcd raft如何实现leadership transfer

    leadership transfer可以把raft group中的leader身份转给其中一个follower.这个功能可以用来做负载均衡,比如可以把leader放在性能更好的机器或者离客户端更近的 ...

  3. 12-openldap使用AD密码

    阅读视图 本文严重参考 Openldap 整合windows AD认证 本文其他参考 OpenLDAP使用AD密码 Configuring OpenLDAP pass-through authenti ...

  4. Gnome增加消息提醒extension ( Fedora 28 )

    访问 https://extensions.gnome.org/ 网站(注意:需要安装 chrome-gnome-shell  rpm 包来使得系统能与Web Browser进行通信) 安装插件: n ...

  5. zabbix-Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused

    监控zabbix服务端这台服务器,然后显示Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Conne ...

  6. January 16th, 2018 Week 03rd Tuesday

    Accept who you are, and revel in it. 接受真实的自己并乐在其中. Try to accept youself and try to love yourself mo ...

  7. 在Eclipse中使用Maven jetty的debug模式

    1.右键项目debug as添加mvn命令: jetty:run 2.进入eclipse的菜单Run->Debug configurations,会看到maven build下对应的项目的mvn ...

  8. css实现不定高度的元素垂直居中问题

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. API--ResponseBody-类

    import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInc ...

  10. 洛谷P4551 最长异或路径

    传送门:https://www.luogu.org/problem/show?pid=4551 在看这道题之前,我们应懂这道题怎么做:给定n个数和一个数m,求m和哪一个数的异或值最大. 一种很不错的做 ...