题目链接 :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 = 0;LL fir = y, last = y+x;LL Firsum = (x+1)*(fir + last)/2;sum += Firsum;for(LL i=1; i<=y; i++){sum = sum + Firsum - (i*(x+1));}return sum;
}
int main(void)
{scanf("%lld %lld", &m, &b);LL ans = -1;for(LL y=b; y>=0; y--){LL x = cal(y);ans = max(ans, bananas(x, y));}printf("%lld\n", ans);return 0;
}

View Code

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

转载于:https://www.cnblogs.com/LiHior/p/7102462.html

#420 Div2 Problem B Okabe and Banana Trees (math 暴力枚举)相关推荐

  1. CF#420 B. Okabe and Banana Trees 思维|暴力|几何

    Okabe needs bananas for one of his experiments for some strange reason. So he decides to go to the f ...

  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. CF 420 821B Okabe and Banana Trees

    题解: 这道题我看的是别人的解释, https://www.cnblogs.com/shingen/p/7105280.html #include<stdio.h> #include< ...

  4. codeforces 821 B Okabe and Banana Trees

    题目:http://codeforces.com/contest/821/problem/B 大致题意: 给两个正整数m,b,画出一条直线y = -x/m + b,求直线下的一个矩形使得获取的香蕉数最 ...

  5. Codeforces 821B Okabe and Banana Trees 题解

    题意 给你一条直线y=-x/m+b,给定m和b,你可以在第一象限包括坐标轴的区域内直线下方包括直线上选取一点,以它为右上顶点,以坐标原点为左下顶点作矩形,可以退化成线段甚至点,问在它之内包括边上的整点 ...

  6. CF821B Okabe and Banana Trees

    思路: 暴力枚举. 实现: 1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 typedef ...

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

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

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

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

  9. #418 Div2 Problem B An express train to reveries (构造 || 全排列序列特性)

    题目链接:http://codeforces.com/contest/814/problem/B 题意 : 有一个给出两个含有 n 个数的序列 a 和 b, 这两个序列和(1~n)的其中一个全排列序列 ...

最新文章

  1. 基于java+jdbc+servlet+jsp实现图书商城
  2. yolov5 onnx
  3. php与js的关系,Php与Js的交互
  4. mysql修改默认编码为UTF8
  5. mysql2005错误_SQL Server 2005 还原数据库错误解决方法
  6. mysql实现树形_Mysql实现树形递归查询
  7. 怎么用计算机知道别人手机密码,怎样才能知道别人家的wifi密码
  8. hihocoder第196周
  9. yum centos 7.4 安装svn服务器
  10. 初识Hadoop入门介绍
  11. css3 flex流动自适应响应式布局样式类
  12. 论文笔记 -- ISSCC-2020: GANPU (Multi-DNN Processor for GANs with Speculative Dual-Sparsity Exploitation)
  13. 金融货币学笔记(米什金)第二章 金融体系概览
  14. 计算机三级嵌入式系统知识点考查(易错)
  15. 【通知】4月18日22:00至4月19日2:00网站服务暂停公告
  16. 8天掌握EF的Code First开发系列之动手写第一个Code First应用
  17. Autograd:你没有使用过的最佳的机器学习库?
  18. web返回的数据集格式_200G倾斜数据无插件web端预览!兼容三端,有容乃大—MapGIS M3D数据格式...
  19. IBM云计算服务–CMS、SoftLayer
  20. 题解 【网络流24题】太空飞行计划

热门文章

  1. [ATF] ARM Trusted firmware 构建选项
  2. 994. 腐烂的橘子 (广度探索)
  3. openGauss社区理事会正式成立!云和恩墨与3大运营商、7大头部银行等18家理事单位加入,共建、共享、共治优质社区...
  4. 打击电商假货的社会意义
  5. 使用NPOI做Excel简单报表
  6. java PDF转换图片(IMG)
  7. mysql 没有开启binlog_mysql binlog没有开启数据怎么恢复
  8. 凸优化“傻瓜”教程-----凸优化基础知识
  9. WORD2010 页眉横线和页面顶端距离相同显示不一样
  10. 包装设计模式-Decorator