洛谷基础赛 #2 & qw Round -1 题解
大概是我打的最好的一场之一。
A. color
给出洛谷“咕值”的五项标准(相加即为咕值),请根据洛谷咕值系统介绍判断用户名的颜色,用字符串
Gray,Blue,Green,Orange,Red中的一个表示。
按题目模拟即可。
时间复杂度:\(O(1)\)。
B. drink
给定一个长度为 \(n\) 的数列 \(a\),下标从 1 开始。现在只可以选择一次 \(l\) 和 \(r\) 使得 \(a_l, a_{l+1}, \ldots, a_{r-1}, a_r\) 均变为 0。请问需选择什么 \(l, r\) 使得数列中的所有元素均为 0?
我们寻找最左边的非零元素,其下标为 \(l\);再寻找最右边的非零元素,其下标为 \(r\)。这样被选中的区间一定会包含所有的非零元素,满足题意。
时间复杂度:\(O(n)\)。
C. queue
很多人排队打游戏,其中队伍最前面的 2 个人被视为 正在游玩(如果没有 2 个人就是第 1 个人)。我们要实现一个队列,支持以下操作:
- 开始新一局游戏(
start):之前在玩的在这时回到队尾,队首的人补上。- \(x\) 进入队伍(
arrive x):把 \(x\) 插入队尾,除非 \(x\) 已经在队伍里。- \(x\) 中途退出(
leave x):把 \(x\) 移出队伍,除非 \(x\) 正在游玩。
此题我用的链表(list)实现,60 分,超时了 4 个点。正解则是用 set 维护队列,再用 map 存储是否入队和是否在游玩即可。
D. pay
题解见此。

浙公网安备 33010602011771号