P7225 [RC-04] 走迷宫

题目背景

**这是一道交互题。** 请确保您提交前认真阅读过 ,并且熟知 P1947 的写法。 您可以直接在以下样例程序中编辑: ```cpp #include using namespace std; extern "C" bool move_to(char position); extern "C" string find_out_map(int X,int Y,int N){ return "233"; } ``` 同时本题不支持 Pascal,祝愿 Pascal 党早日转 C++。

题目描述

### 题目描述 **这是一道交互题。** 你被困在一个迷宫内,你需要求出这个迷宫的地图。 迷宫是 $n\times n$ 的网格,每个位置上要么是障碍,要么是路。障碍用 `1` 表示,路用 `0` 表示。坐标按照从上到下,从左到右编号,第 $i$ 行第 $j$ 列坐标为 $(i,j)$。 定义两个格子连通当且仅当他们有公共边(四连通)。保证恰好存在一个 `0` 构成的连通块,并且你的出生点在这个连通块中。 ### 实现细节 你需实现一个函数: `string find_out_map(int x,int y,int n)` 参数为三个整数 $x,y,n$,返回值为一个字符串。其中 $x,y$ 表示你的坐标为 $(x,y)$($1

输入格式

输出格式

说明/提示

### 交互过程范例 假设地图为 ``` 1111 1011 1001 1111 ``` 最初传进来的参数为 $(2,2,4)$。 下面是一种合法的交互过程: | 选手调用 | 交互器返回 | | :----------: | :----------: | | `move_to('S')` | 1 | | `move_to('D')` | 1 | | `move_to('W')` | 0 | | 返回 `1111101110011111` | Accepted | ### 数据范围与限制 **本题时间限制 $2$ 秒,空间限制 $512\text{MB}$,且保证交互库最坏情况下所用时间小于 $0.5$ 秒、空间小于 $15\text{MB}$。** 首先交互题会受到和常规题相同的限制,如超时/超空间会导致整个测试点得零分。 在此基础上,当且仅当你报告的迷宫地图完全正确时你得分。设你调用函数最多的一次次数为 $W$,则你得到该测试点的满分,当且仅当 $W\le 5\times 10^5$。 对于 $100\%$ 的数据,$5\le n\le 500$。设调用你的函数的次数为 $x$(相当于有多组数据,你需要初始化),则 $1\le x\le 50$。详细数据范围如下,$(T)$ 表示这个测试点分数为 $T$ 分。 - 测试点 $1\ (8)$:$n=5,x\le 50$。 - 测试点 $2\ (8)$:$n=7,x\le 50$。 - 测试点 $3\ (20)$:$n\le 10,x\le 50$。 - 测试点 $4\ (10)$:$n\le 500,x\le 7$。保证仅存在恰好一个 `1` 构成的连通块。 - 测试点 $5\ (10)$:$n\le 20,x\le 20$。 - 测试点 $6\ (10)$:$n\le 50,x\le 20$。 - 测试点 $7\ (9)$:$n\le 100,x\le 10$。 - 测试点 $8\ (10)$:$n\le 200,x\le 7$。 - 测试点 $9\ (15)$:$n\le 500,x\le 7$。 ### 交互题怎么调试 本题交互过程太过简单,因此本题不提供交互器。请选手自行编写。 假如你不知道怎么做:只需编写一个程序,读入地图,并且实现 `move_to` 函数,然后把你的答案函数放于其中即可运行。