1 条题解

  • 0
    @ 2025-8-24 22:54:33

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar cff_0102
    & aqua_qaq | 团子群 185800038 | 如果我死了说明我 AFO 了

    搬运于2025-08-24 22:54:33,当前版本为作者最后更新于2024-01-22 18:49:27,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    xx 的范围拆成 0x<an×n0\le x<\lfloor\dfrac{a}{n}\rfloor\times nan×nxa\lfloor\dfrac{a}{n}\rfloor\times n\le x\le a 两个范围,把 yy 的范围拆成 0y<bn×n0\le y<\lfloor\dfrac{b}{n}\rfloor\times nbn×nyb\lfloor\dfrac{b}{n}\rfloor\times n\le y\le b 两个范围。那么 x,yx,y 的取值范围就有四种可能:设 (p,q)(p,q) 表示 xx 属于它的第 pp 个范围,yy 属于它的第 qq 个范围,则这四个可能分别是 (1,1),(2,1),(1,2),(2,2)(1,1),(2,1),(1,2),(2,2)

    然后分情况讨论。

    • (1,1)(1,1):将 x,yx,y 的范围分别拆成 an\lfloor\dfrac{a}{n}\rfloorbn\lfloor\dfrac{b}{n}\rfloor 个大小为 nn 的小范围,那么只考虑 x,yx,y 分别在哪个范围的话,一共有 $\lfloor\dfrac{a}{n}\rfloor\times\lfloor\dfrac{b}{n}\rfloor$ 种可能。而在一个大小为 nn 的小范围中,xx 随便取其中一个,为了让加和结果是 nn 的倍数,yy 都有且只有一个数与其对应。因此,这样在每个小范围中,实际上有 nnx,yx,y 的取值可能。乘上前面范围的可能,此时的可能数为 $\lfloor\dfrac{a}{n}\rfloor\times\lfloor\dfrac{b}{n}\rfloor\times n$ 种。
    • (2,1)(2,1):将 yy 的范围拆成 bn\lfloor\dfrac{b}{n}\rfloor 个大小为 nn 的小范围,那么只考虑 yy 在哪个范围的话,一共有 bn\lfloor\dfrac{b}{n}\rfloor 种可能。而在一个大小为 amodna\bmod n 的小范围中,xx 随便取其中一个,为了让加和结果是 nn 的倍数,yy 都有且只有一个数与其对应。因此,这样在每个小范围中,实际上有 amodna\bmod nx,yx,y 的取值可能。乘上前面范围的可能,此时的可能数为 bn×(amodn)\lfloor\dfrac{b}{n}\rfloor\times(a\bmod n) 种。
    • (1,2)(1,2):将 xx 的范围拆成 an\lfloor\dfrac{a}{n}\rfloor 个大小为 nn 的小范围,那么只考虑 xx 在哪个范围的话,一共有 an\lfloor\dfrac{a}{n}\rfloor 种可能。而在一个大小为 bmodnb\bmod n 的小范围中,yy 随便取其中一个,为了让加和结果是 nn 的倍数,xx 都有且只有一个数与其对应。因此,这样在每个小范围中,实际上有 bmodnb\bmod nx,yx,y 的取值可能。乘上前面范围的可能,此时的可能数为 an×(bmodn)\lfloor\dfrac{a}{n}\rfloor\times(b\bmod n) 种。
    • (2,2)(2,2):在一个大小为 amodna\bmod n 的小范围中,xx 随便取一个数,为了让加和结果是 nn 的倍数,yy 必须为 nxn-x。此时必须要求 nxn-xyy 的范围内,即 0nxbmodn0\le n-x\le b\bmod n。那么,答案应该是满足 0nxbmodn0\le n-x\le b\bmod n0xamodn0\le x\le a\bmod n(x,y)(x,y) 个数。化简一下前者,得到 nbmodnxnn-b\bmod n\le x\le n。因为 amodn<n,nbmodn>0a\bmod n<n,n-b\bmod n>0,所以两式合并得到 nbmodnxamodnn-b\bmod n\le x\le a\bmod n。此时答案就是满足这个条件的 xx 的数量。因此,有 $\max(0,a\bmod n-(n-b\bmod n)+1)=\max(0,a\bmod n+b\bmod n-n+1)$ 种 x,yx,y 的取值可能。

    所以答案就是上面四种情况的答案之和,即 $\lfloor\dfrac{a}{n}\rfloor\times\lfloor\dfrac{b}{n}\rfloor\times n+\lfloor\dfrac{b}{n}\rfloor\times(a\bmod n)+\lfloor\dfrac{a}{n}\rfloor\times(b\bmod n)+\max(0,a\bmod n+b\bmod n-n+1)$ 种可能的情况。

    t=int(input())
    for _ in range(t) :
        n,a,b=map(int,input().split())
        print((a//n)*(b//n)*n + (a%n+1)*(b//n) + (b%n+1)*(a//n) + max(0,a%n+b%n-n+1))
    
    • 1

    信息

    ID
    9018
    时间
    1000ms
    内存
    128MiB
    难度
    4
    标签
    递交数
    0
    已通过
    0
    上传者