jhxs441
(郭紫萱)
1
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:如下
周子寓
(zzy10124)
2
这题简单,你暴搜就OK了
核心代码:
for(long long x=0;x<=(...);x++){
y=floor(b-x/(double)m);
ans=max(ans,(x+1)*(y+1)*(x+y)/2);
}
尹思源
(ค按下F键清风带你重回巅峰😎ง)
3
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 个赞
尹思源
(ค按下F键清风带你重回巅峰😎ง)
4
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;