B. Alice's Adventures in Permuting (python解)-codeforces
1.B. Alice's Adventures in Permuting (python解)-codeforces
2.C. 小红打怪 (python解)-牛客3.B. Replacement (python解)-codeforces4.C - Sowing Stones(python解)-atcoder5.C. Alya and Permutation(python解)-codeforces6.AtCoder Beginner Contest 375 C题 (python解)7.C. Penchick and BBQ Buns (python解)-codeforces8.D - Strange Mirroring(python解)——Atcoder9.D. Sharky Surfing (python解)-codeforces10.牛客小白月赛105 (Python题解) A~EB. Alice's Adventures in Permuting (python解)-codeforces
原题链接:
B. Alice's Adventures in Permuting
问题分析:
我们需要将数组 a 转换为一个排列,排列是由 n 个不同的整数构成,范围从 0 到 n−1。数组 a 是通过给定的参数 n、b 和 c 生成的。
思路:
-
当 b=0 时,数组中的所有元素都是 c,这意味着数组中的元素不可能是不同的,因此如果 c<n,则无法形成排列,返回
-1
;如果 c≥n,则数组中的元素超出了排列的范围,返回-1
。 -
处理 b>0 的情况:
检查这个最大值是否至少为 n−1。如果小于 n−1,则无法形成排列,返回
-1
-
计算所需的操作次数:
代码:
import random
import sys
def main():
input = sys.stdin.read
data = input().split()
t = int(data[0])
index = 1
z = []
for _ in range(t):
n = int(data[index])
b = int(data[index + 1])
c = int(data[index + 2])
index += 3
if b == 0:
if c >= n:
z.append(str(n))
elif c >= n - 2:
z.append(str(n - 1))
else:
z.append("-1")
else:
if c >= n:
z.append(str(n))
else:
z.append(str(n - max(0, 1 + (n - c - 1) // b)))
print("\n".join(z))
if __name__ == "__main__":
main()
祝AC
标签:
codeforces
, Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异