题目链接 :http://codeforces.com/contest/821/problem/B

题意 :给出 m 和 b 表示在坐标轴上的一条直线  要求你在这条直线和x、y轴围成的区域中找出一个矩形,使得矩形贡献的价值最大,矩形的贡献由在矩形里面的每一个整数点(x, y)的和构成即 x+y。

分析 :实际就是在一个限定的范围内找价值最大矩阵,那么可以试着枚举在这个区域内的可能有最大贡献的矩阵,根据y从b~0自上而下地枚举,对于每一个yi,我们根据直线方程算出xi(向下取整),那这个xi和yi便确定了在这个y值下可以取到的最大的矩形且矩形右上角是点(xi, yi),应该不难想象,接下来就是计算贡献了,如果暴力计算肯定超时,看看能不能将要计算的点列出来找找规律,如下

y           y+1        y+2................y+x

(y-1)     (y-1)+1   (y-1)+2.........(y-1)+x

(y-2)     (y-2)+1   (y-2)+2.........(y-2)+x

......

0           0+1        0+2.........0+x

可以看出每一行就是一个等差数列,可以利用等差数列公式

#include<bits/stdc++.h>
#define LL long long
using namespace std;
LL m, b;
LL cal(LL y){ return (b - y)*m; }
LL bananas(LL x, LL y)
{
    LL sum = ;
    LL fir = y, last = y+x;
    LL Firsum = (x+)*(fir + last)/;
    sum += Firsum;
    ; i<=y; i++){
        sum = sum + Firsum - (i*(x+));
    }
    return sum;
}
int main(void)
{
    scanf("%lld %lld", &m, &b);
    LL ans = -;
    ; y--){
        LL x = cal(y);
        ans = max(ans, bananas(x, y));
    }
    printf("%lld\n", ans);
    ;
}

实际上,如上是计算还可以更加简便,可以看出每一行的x的和都是一样的,而每一行的y的和也都是一样的,那就可以分开用等差数列计算在乘上个数相加即可,即:

#420 Div2 Problem B Okabe and Banana Trees (math && 暴力枚举)的更多相关文章

  1. Codeforces821B Okabe and Banana Trees 2017-06-28 15:18 25人阅读 评论(0) 收藏

    B. Okabe and Banana Trees time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  2. 【Codeforces Round #420 (Div. 2) B】Okabe and Banana Trees

    [题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一 ...

  3. CF821 B. Okabe and Banana Trees 简单数学

    Link 题意:给出一条直线,在直线上取一点,其垂直x,y轴作成一个,求矩阵中所有包含的点的x,y坐标之和的最大值. 思路:对于一个任意一点我们计算公式,对于任意一点$(x, y)$,有$(x+y)^ ...

  4. codeforces B. Okabe and Banana Trees 结论题

    题目传送门 这道题 枚举一波y就好了 要求x,y整数 所以y最多1000个 然后算一波答案更新就好了 233 #include<cstdio> #include<cstring> ...

  5. CF821B Okabe and Banana Trees

    思路: 暴力枚举. 实现: #include <iostream> #include <cstdio> using namespace std; typedef long lo ...

  6. codeforces round 420 div2 补题 CF 821 A-E

    A Okabe and Future Gadget Laboratory 暴力 #include<bits/stdc++.h> using namespace std; typedef l ...

  7. #420 Div2 C

    #420 Div2 C 题意 不断把数加入到一个栈里,取数的时候要求按照 1~n 的顺序取数,每次取数保证数一定在栈里,如果要取的数不在栈头,可以选择对栈排序一次.问最少排序几次. 分析 只要栈头的数 ...

  8. #420 Div2 D

    #420 Div2 D 题意 给出一个方格矩阵,其中存在亮着的方格,只能在亮着的方格上行走,可以在初始亮的方格上花费一枚硬币临时点亮任意一行或一列,地图上同一时间只能存在一个这样的行或列,问走到终点最 ...

  9. Gym 101194L / UVALive 7908 - World Cup - [三进制状压暴力枚举][2016 EC-Final Problem L]

    题目链接: http://codeforces.com/gym/101194/attachments https://icpcarchive.ecs.baylor.edu/index.php?opti ...

随机推荐

  1. 关于liunx 机器脱机环境(netcore)Nuget包迁移的问题

    首先nuget脱机环境是没办法加载第三方nuget包的,我这里的做法是使用nuget缓存文件(正确的做法还是推荐使用自己搭建的nuget服务器然后正常发布,这里只是做应急之需) 我们都知道项目的dot ...

  2. chrome插件--安装以及问题记录

    vue-devtools 插件网址下载 问题1 Vue.js is detected on this page. Devtools inspection is not available becaus ...

  3. C语言I博客作业12

    一.我学到的内容 二.我的收获 作业链接 收获 博客第一次作业:https://www.cnblogs.com/gm12/p/11584148.html 第一次作业收获:第一次作业是我初步接触C语言的 ...

  4. [转帖]Spring Cloud底层原理

    拜托!面试不要再问我Spring Cloud底层原理 https://mp.weixin.qq.com/s/ZH-3JK90mhnJPfdsYH2yDA 毫无疑问,Spring Cloud 是目前微服 ...

  5. [题解][洛谷]_U75702/P5462_X龙珠_论何为字典序

    赛时嫌麻烦,没写 赛后自闭了,写了一下午 题目描述 “X龙珠”是一款益智小游戏.游戏中有 n(2|n)n(2∣n) 个编号互不相同龙珠按照给定的顺序排成一个队列,每个龙珠上面都有一个编号.每次操作时, ...

  6. ubuntu下搭建车场环境(代码使用jekins构建)

    1.安装jdk,jre sudo apt-get update # 更新软件包管理器,如果已经执行过,则可以不用再执行 sudo apt-get install default-jdk # 安装默认的 ...

  7. 如何导入GitHub下的vue项目 并启动

    如何运行  下载的GitHub项目 一 准备工作: Node.js环境(npm包管理器) vue-cli 脚手架构建工具 cnpm npm的淘宝镜像 二 安装node.js 略 cmd 输入node ...

  8. Servlet监听器——实现在线登录人数统计小例子

    一.概念 servlet监听器的主要目的是给web应用增加事件处理机制,以便更好的监视和控制web应用的状态变化,从而在后台调用相应处理程序. 二.监听器的类型 1.根据监听对象的类型和范围,分为3类 ...

  9. drf三大认证解析

    目录 三大认证 认证模块: 权限模块 频率模块 RABC author组件 认证权限六表. Content_type 认证与权限工作原理+自定义认证类 自定义权限类 admin关联自定义用户表 前后台 ...

  10. VMware虚拟机中CentOS/redhat设置固定IP

    你的笔记本中的VMware中redhat或centOS系统,如果想在上面建站,而又如果你需要在家里和公司都能访问该站(至少希望你自己的笔记本能访问),那么就需要将虚拟机IP设置为固定IP了.以下介绍两 ...