题库 香蕉树 求助dalao!!!

7. 香蕉树

题目ID:3302100分

最新提交:0 分

历史最高:0 分

时间限制: 200ms

空间限制: 32768kB

题目描述

时间:0.2s 空间:32M

题目描述:

在一个平面直角坐标系中,需要选择一些点种香蕉树,香蕉树只能种在𝑥,𝑦>=0x,y>=0的地方(x,y都是整数),如果有一棵香蕉树种在点(𝑥,𝑦)(x,y)上,那么这个点可以收获(𝑥+𝑦)(x+y)根香蕉。

现在某政府划了一条线,𝑦=−𝑥/𝑚+𝑏y=−x/m+b,你只能在线的下方选择一个矩形(在矩形内部与边界的整点上)去种香蕉树,问你最多能收获多少香蕉。矩形可能会退化,即变成一条线段。

保证答案不超过10181018

输入格式:

输入一行包含两个整数𝑚,𝑏m,b

输出格式:

输出一行包含一个整数

样例输入1:

1 5

样例输出1:

30

样例输入2:

2 3

样例输出2:

25

约定:

1<=𝑚<=1000,1<=𝑏<=100001<=m<=1000,1<=b<=10000

提示:

样例1:如下

这题简单,你暴搜就OK了

核心代码:
    for(long long x=0;x<=(...);x++){
	    y=floor(b-x/(double)m);
	    ans=max(ans,(x+1)*(y+1)*(x+y)/2);
	}
int max_bananas = 0;
for (int x = 0; x <= b*m; x++) {
    int y = -x/m + b;
    int bananas = (x + y) * (x + y);
    if (bananas > max_bananas) {
        max_bananas = bananas;
    }
}

cout << max_bananas << endl;
1 个赞
int max_bananas = 0;
for (int x = 0; x <= b*m; x++) {
    int y = -x/m + b;
    int bananas = (x + y) * (x + y);
    if (bananas > max_bananas) {
        max_bananas = bananas;
    }
}

cout << max_bananas << endl;

不对呀

答案错误

填了

应该是你循环有问题
@jhxs451