Codefroces 821B Okabe and Banana Trees(暴力)

来源:互联网 发布:苹果老虎机软件下载 编辑:程序博客网 时间:2024/06/10 00:36

http://codeforces.com/problemset/problem/821/B

题目很简单,就是给出一个线段,然后在他和x轴,y轴围成的区域中取出一个矩形然后算出他的和,每个点的值是x+y。要求所取矩阵的所有点的值加起来尽量大。

我不知道我的猜想是不是对的,就是尽量取中间的点。所以我想到的方法就是暴力,直接每个矩形都暴力出来即可。取出最大值。然后就是这个算等差数列求和的时候会有爆long long的情况,所以要注意到。

代码如下:

#include<bits/stdc++.h>using namespace std;typedef long long ll;ll myget(ll x, ll y){ll tmp = 0;if(x <= y){ll n = y + 1;for(ll i = 0; i <= x; i++){tmp += n * i + n * (n - 1) / 2;}}else{ll n = x + 1;for(ll i = 0; i <= y; i++){tmp += n * i + n * (n - 1) / 2;}}return tmp;}int main(){ll m, b, x, ans = 0, tmp;cin >> m >> b;for(ll y = b; y >= 0; y--){x = (y - b) * (-m);tmp = myget(x, y);ans = max(ans, tmp);}cout << ans << endl;return 0;} 


原创粉丝点击