1 条题解

  • 0
    @ 2025-8-24 21:15:54

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Maxmilite
    **

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

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

    以下是正文


    Source & Knowledge

    2024 年 1 月语言月赛,由洛谷网校入门计划/基础计划提供。

    题目大意

    给定 A,B,C,D,E,F,G,P,X1,X2,Y1,Y2A, B, C, D, E, F, G, P, X_1, X_2, Y_1, Y_2,求当 X1xX2X _ 1 \leq x \leq X _ 2Y1yY2Y _ 1 \leq y \leq Y _ 2x,yx, y 均为整数时 $f(x, y) = (A x ^ 3 + B y ^ 3 + C x ^ 2 y + Dxy ^ 2 + Exy + Fx + Gy) \bmod P$ 的最大值。

    题目分析

    本题考察对二重循环结构的运用。

    注意到 x,yx, y 都是整数且 X1xX2X _ 1 \leq x\leq X _ 2Y1yY2Y _ 1 \leq y \leq Y _ 2,因此使用一个二重循环枚举所有的 x,yx, y 即可。核心代码如下:

    for (int x = x1; x <= x2; ++x) {
        for (int y = y1; y <= y2; ++y) {
            // 计算函数值        
        }
    }
    

    其中查找函数最大值使用擂台法,即,初始时使用一个变量 cc(本题 cc 可初始化为 00),此后不断让 cc 与新计算的函数值比较并取最大值即可。

    int c = 0;
    
    // 在循环内
    long long fxy = ....
    if (fxy > c) c = fxy;
    

    最后需要注意,x,yx, y 最大值为 10310 ^ 3AGA \sim G 最大值为 10910 ^ 9,因此 Ax3A x ^ 3 等的最大值可以达到 101210 ^ {12},超过 int 类型所能容纳的范围。因此可能需要使用 long long 来做函数的计算,以避免溢出的情况。

    视频讲解

    • 1

    信息

    ID
    9727
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者