B. Alice's Adventures in Permuting (python解)-codeforces

B. Alice's Adventures in Permuting (python解)-codeforces

原题链接:

B. Alice's Adventures in Permuting

问题分析:

我们需要将数组 a 转换为一个排列,排列是由 n 个不同的整数构成,范围从 0 到 n−1。数组 a 是通过给定的参数 nbc 生成的。

a[i]=b(i1)+c

1in

思路:

  • 当 b=0 时,数组中的所有元素都是 c,这意味着数组中的元素不可能是不同的,因此如果 c<n,则无法形成排列,返回 -1;如果 cn,则数组中的元素超出了排列的范围,返回 -1

  • 处理 b>0 的情况

    =(n1)b+c

    检查这个最大值是否至少为 n−1。如果小于 n−1,则无法形成排列,返回 -1

  • 计算所需的操作次数

    =((n1)c)/b+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

posted @   元`  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示