1 条题解
-
0
自动搬运
来自洛谷,原作者为

chen_kun
生命绚烂,别被黑暗压垮。搬运于
2025-08-24 23:14:11,当前版本为作者最后更新于2025-04-21 19:34:11,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题解:坤之队的球衣号码
题目描述
在篮球之都,有一支由 位球员组成的“坤之队”。他们参加了 场比赛,每场比赛前教练会指定一名队长,并将队长的球衣号码设为 0。其他球员的球衣号码根据与队长的位置关系调整:队长右边的球员号码依次比左边大 1,左边的依次比右边大 1。经过 场比赛后,求每个球员在所有比赛中穿过的最大球衣号码。
输入格式
- 第一行:两个整数 和 ,表示球员数量和比赛场数。
- 第二行: 个整数,表示每场比赛的队长编号。
输出格式
- 一行 个整数,表示每个球员在所有比赛中的最大球衣号码。
解题思路
- 球衣号码规律:对于队长编号 ,球员 的球衣号码为 。
- 最大号码:对于每个球员 ,队长为 时,其最大球衣号码是所有比赛中 的最大值。
- 优化:可以通过观察发现,最大球衣号码只与所有队长编号的最小值 和最大值 有关。因此,对于每个 ,其最大球衣号码为 。
代码实现
import sys def main(): # 读取 n 和 m n, m = map(int, sys.stdin.readline().split()) # 初始化最大值和最小值 mmax = -float('inf') mmin = float('inf') # 读取 m 个队长编号,更新最大值和最小值 t_list = list(map(int, sys.stdin.readline().split())) for t in t_list: mmax = max(mmax, t) # 取最大值 mmin = min(mmin, t) # 取最小值 # 根据前面推理得出的公式输出答案 for i in range(1, n + 1): print(max(abs(i - mmin), abs(i - mmax)), end=" ") if __name__ == "__main__": main()The end.
- 1
信息
- ID
- 12118
- 时间
- 3000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者