题目名称 3739. 网格上的路径
输入输出 pathongrid.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarop_组撒头屯 于2022-08-20加入
开放分组 全部用户
提交状态
分类标签
莫队
分享题解
通过:2, 提交:4, 通过率:50%
Gravatarop_组撒头屯 100 1.618 s 10.31 MiB C++
Gravatar┭┮﹏┭┮ 100 1.897 s 12.60 MiB C++
Gravatar┭┮﹏┭┮ 40 1.868 s 12.60 MiB C++
Gravatarop_组撒头屯 40 1.966 s 10.31 MiB C++
关于 网格上的路径 的近10条评论(全部评论)

3739. 网格上的路径

★★   输入文件:pathongrid.in   输出文件:pathongrid.out   评测插件
时间限制:1 s   内存限制:256 MiB

【题目描述】

在一个 $n×n$ 的网格上共有 $m$ 个点,每条边的长度为 $1$ 。现在你要从$(1,1)$出发,并沿着网格的边走过所有点,最后到达$(n,n)$。请你给出一种行走顺序,使得你走过的总长度不超过 $\lfloor (n+m)\sqrt{n}+2n\rfloor$

【输入格式】

第一行两个整数 $n,m$ 。

接下来 $m$ 行,每行两个整数 $x,y$ ,表示一个点$(x,y)$。保证 $1≤x,y≤n$

【输出格式】

首先输出一个整数表示你给出的方案中走过的总长度。

之后,你应该输出$[1,m]$的所有数恰好一遍,表示在你给出的方案中先后经过的 $m$ 个点的编号。

【样例输入】

3 2
2 2
2 3

【样例输出】

4
1 2

【样例说明】

一种方案是:

$(1,1)\ ->\ (2,2)\ ->\ (2,3)\ ->\ (3,3)$

总长度为 $4$ ,而 $\lfloor (n+m)\sqrt{n}+2n\rfloor=14$

【数据规模与约定】

对于$40\%$的数据,$1≤n≤100$

对于$100\%$的数据,$1≤n≤10^9\ ,\ 1≤m≤\min\{n^2,10^6\}$

【来源】

$rsr$