题目链接:http://codeforces.com/contest/821/problem/B
解析:昨天12点多才给写出来,刚开始思路错了,找最大矩形暴力枚举矩形面积,可能忽略了一些特殊情况,就算不WA也会TLE,根据函数y轴截距为b,x轴截距为b*m,那么咱枚举y轴截距(比枚举x省时间),最大点即为(-1ll*(y-b)*m, y),然后找最大的,其实每个最大矩形都在那条线上
代码:
#include<bits/stdc++.h>
#define N 209
using namespace std;
//y b
//x b*m
int main()
{
int b, m;
scanf("%d%d", &m, &b);
long long ans = 0ll;
for(long long y = 0; y <= b; y++)
{
long long x = -1ll*(y-b)*m;
ans = max(ans, x*(1ll+x)/2ll*(1ll+y)+y*(1ll+y)/2ll*(1ll+x));
}
cout << ans << endl;
return 0;
}