1 条题解

  • 0
    @ 2025-8-24 21:14:51

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

    搬运于2025-08-24 21:14:50,当前版本为作者最后更新于2025-03-08 13:52:29,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    欢迎报名洛谷网校,期待和大家一起进步!

    本题考察数学、方程组。

    我们可以令鸡的数量为 aa、三脚猫的数量为 bb、兔子的数量为 cc。题目给出两个方程:

    {a+b+c=x2a+3b+4c=y\begin{cases} a+b+c=x\\ 2a+3b+4c=y \end{cases}

    我们可以消去 aa。令 a=xbca=x-b-c,代入第二个方程得到

    2(xbc)+3b+4c=y2(x-b-c)+3b+4c=y

    化简后,

    $$2x-2b-2c+3b+4c=y \quad\Longrightarrow\quad 2x+b+2c=y $$

    b=y2x2cb=y-2x-2c

    同时,由于 a=xbc=x(y2x2c)c=3xy+ca= x-b-c = x-(y-2x-2c)-c = 3x-y+c,为了保证 a0a\ge0b0b\ge0(动物数量不能为负),我们必须有:

    • 3xy+c03x-y+c\ge0  即 cy3xc\ge y-3x
    • y2x2c0y-2x-2c\ge0  即 cy2x2c\le \frac{y-2x}{2}

    另外,cc 本身也必须非负,所以综合起来:

    $$c\ge \max(0,\, y-3x) \quad \text{且} \quad c\le \frac{y-2x}{2} $$

    因此,所有满足条件的兔子数量的取值范围为:

    $$\text{下界} = \max(0,\, y-3x) \qquad \text{上界} = \left\lfloor \frac{y-2x}{2} \right\rfloor $$

    参考代码:

    // 下界:保证 a >= 0
    long long low = max(0LL, y - 3 * x);
    // 上界:保证 b >= 0
    long long high = (y - 2 * x) / 2;
    cout << low << " " << high << "\n";
    
    • 1

    信息

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