1 条题解

  • 0
    @ 2025-8-24 22:38:13

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar chen_zhe
    Aya 敲可爱的~

    搬运于2025-08-24 22:38:13,当前版本为作者最后更新于2022-05-16 09:55:45,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    显然,每次优先放入银色木板,到了最后一格的时候放入金色木板是最优的。根据这个思想去模拟放入过程,不开 long long 是 50-70 分,非常良心。

    不妨考虑以最优情况放入所有金色木板后,所能承载的银色木板量。第一次放入金色木板前可以承载 z1z-1 块银色木板,第二次则是 z2z-2 块,以此类推到第 xx 次则是 zxz-x 块,这构成一个等差数列。则可以通过放入金色木板而被挪出去的银色木板的总量为 (z1+(zx))×x2\dfrac{(z-1+(z-x))\times x}{2} 块。放入最后一块金色木板之后,盒子还剩下 zxz-x 个空位可以放银色木板。故总共最多能放入 (2zx1)×x2+zx\dfrac{(2z-x-1)\times x}{2}+z-x 块银色木板,只需把 yy 与之做比较即可。

    计算过程要全程开 long long。数据我造的,被卡了的话请不要找我。

    std:

    #include <iostream>
    using namespace std;
    int main()
    {
    	long long T,x,y,z;
    	cin >> T;
    	while (T--)
    	{
    		cin >> x >> y >> z;
    		if (x>z)
    			cout << "Merry" << endl;
    		else
    		{
    			long long tot=(z-1+(z-x))*x/2+z-x;
    			cout << (tot>=y?"Renko":"Merry") << endl;
    		}
    	}
    	return 0;
    }
    
    • 1

    信息

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