ZROI普及五连测 10.11
涨了好多分,舒适.(但只有 (250pts) 很不开心,没写出来 (D).)
A.旋风回旋曲
要么直接走过去,要么走到一端再坐缆车去另一端.取(min)即可.
但我不是这么写的,我用了(Floyd.)
从 (0) 到 (100) 相邻的两个数字都建一条长度为 (1) 的边.
然后缆车的两端建一条长度为 (0) 的边.
跑 (Floyd) 输出 (e_{x,y}) 即可.
B.假面饭店
一开始一眼看完,以为是个 (SB) 的枚举子集.
然后发现,直接枚举行不通...还要全排列,会 (TLE).
于是考虑枚举题目要求的平方式中的平方根,这是 (10^6) 左右级别的.
然后再把这个平方根的平方拆位用桶记录,查询能否用原数的数字集合拼出即可.
复杂度的话 (Theta(T imes sqrt{n} imes log_{10}{n}))
C.疯狂外星人
咕咕咕...
D.流浪地球
第一眼看过去就觉得这题十分归程 ((NOI2018: D1: T1)).
不过更简单一些.
把所有的询问和矩阵元素降序排序.
从大到小加入连通块并统计个数即可.
每新加入一个点就 (++) 连通块个数,扫描它的上下左右四连通方向,如果有一个连通块就 (--) 连通块个数,按照顺序输出即可.