题目部分

题目描述

有 R 个红色盒子和 B 个蓝色盒子,还有 R 个红色小球和 B 个蓝色小球。每个盒子只能装一个小球,每个小球都要放在一个盒子里。

如果把一个红色小球放在一个红色盒子里,那么得分是 C。如果把一个蓝色小球放在一个蓝色盒子里,那么得分是 D。如果把一个红色小球放在一个蓝色盒子里,那么得分是 E。如果把一个蓝色小球放在一个红色盒子里,那么得分也是 E。

现在给出 R,B,C,D,E。应该如何放置这些小球进盒子,才能使得总得分最大?输出最大的总得分。

输入输出格式

输入格式:

一行,5 个整数,分别是 R,B,C,D,E。

输出格式:

一个整数,最大总得分。

输入输出样例

输入样例#1:

2 3 100 400 200

输出样例#1:

1400

输入样例#1:

2 3 100 400 300

输出样例#1:

1600

分析

吐槽部分

做这道题本身是想要刷水的

但是,当我开始做,我发现

这。。。不是一个水到秒的题(其实是我太单纯了)

摸索部分

首先是第一次的错误:

怎么样,够沙雕吧。(奇怪的是,min还没因为没开algorithm还没报错。。。也许在我开完的库里?)

好,我改完了。

但当我试到第二个样例。。。

样例好良心啊。

我想,emmmm我改。因为当时没有想到蓝色球放到红色盒子,红色球也放盒子的情况,所以加了一句。

然后,结果显而易见,第一个点就awsl了。

想了想,就写出以下代码。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int r,b,c,d,e;
cin>>r>>b>>c>>d>>e;
int ans=-1;
int tmp;
for(int i=0;i<=r;i++)
{
tmp=i*e+(r-i)*c+(b-i)*d+i*e;
ans=max(tmp,ans);
}
cout<<ans<<endl;
return 0;
}

其中:

i->红球放到了篮盒子的数量

(r-i)->红球放到红盒子的数量

第二个i->因为红球部分放到了蓝盒子里,所以必须有部分蓝球也被放到了盒子里

(b-i)->蓝球放到蓝盒子里的个数

尤其注意的是这个:

for(int i=0;i<=r;i++)

枚举红球放到了篮盒子的数量时,要考虑到没有红球放到篮盒子里的情况。

但是既然我把它放在了错误部分,那么它就是错的。

原因两个:

一、

for(int i=0;i<=r;i++)

这句话中我并没有考虑到,如果红球数量>蓝球数量,那么,就有蓝盒子溢出的情况,想想,也许会有好多红球放在根本不存在的蓝盒子里。。。

二、

int ans=-1;

这句话中,我没有看到题目数据范围,也就是C、D、E的范围。它们是可以小于0的,所以可能最大值小于-1,而最大值小于-1时,ans是不会更新的。所以导致错了俩点。

正确部分

最后,我终于成功了。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int r,b,c,d,e;
scanf("%d%d%d%d%d",&r,&b,&c,&d,&e);
int ans=-2147483647;
int tmp;
for(int i=0;i<=min(r,b);i++)
{
tmp=i*e+(r-i)*c+(b-i)*d+i*e;
ans=max(tmp,ans);
}
cout<<ans<<endl;
return 0;
}

改动:

一、

for(int i=0;i<=min(r,b);i++)

此处用了红球、蓝球数量最小值,因为循环次数最多是100次,所以在这里开个min()也没什么问题。

二、

int ans=-2147483647;

这次,我将ans设为int的极小值(当然你用-200000就已经可以了)

好了,我感觉我已经完了

awsl.

luogu p2705 小球的更多相关文章

  1. Luogu[SDOI2008]Sue的小球

    题目描述 Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而,Sue的目标并不是当一个海盗,而是要收集空中漂浮的彩蛋,Sue有一 ...

  2. 题解 Sue的小球/名次排序问题/方块消除/奥运物流

    Sue的小球 名次排序问题 方块消除 奥运物流 Sue的小球 题目大意 有 \(n\) 个小球在下落,初始位置 \((x_i,y_i)\),下落速度为 \(v_i\).你初始位置在 \(x_0\),速 ...

  3. 【webGl】threejs实现一个简单的动画-弹跳的小球

    在这里,我们将动态画面简称为动画(animation).正如动画片的原理一样,动画的本质是利用了人眼的视觉暂留特性,快速地变换画面,从而产生物体在运动的假象.而对于Three.js程序而言,动画的实现 ...

  4. HTML5 Canvas彩色小球碰撞运动特效

    脚本简介 HTML5 Canvas彩色小球碰撞运动特效是一款基于canvas加面向对象制作的运动小球动画特效.   效果展示 http://hovertree.com/texiao/html5/39/ ...

  5. 纯CSS3实现3D跳动小球

    请使用Chrome,火狐的浏览器查看本页面,使用IE将看不到效果.如果在本页看不到一个跳动的小球,请确定您的浏览器支持CSS3,或者访问http://keleyi.com/a/bjac/iphgrtq ...

  6. HTML5 随机弹跳的小球

    查看效果:http://keleyi.com/a/bjad/tc1y11dy.htm Chrome效果图: 火狐效果图:推荐:http://hovertree.com/texiao/css3/18/ ...

  7. WPF实现物理效果 拉一个小球

    一直以来都对物理效果有神秘感,完全不知道怎么实现的.直到看到了周银辉在老早前写的一篇博客:http://www.cnblogs.com/zhouyinhui/archive/2007/06/23/79 ...

  8. HTML5CSS3特效-上下跳动的小球-遁地龙卷风

    (-1)写在前面 我用的是chrome49,这个idea是我在stackoverflow上回答问题时看到了,多谢这位同行,加深了我对很多技术点的理解,最近刚到北京,忙碌了一两天,在后续的日子里,会被安 ...

  9. 【web前端学习部落22群】分享 碰撞的小球开源小案例

    对于课程中的疑问,大家可以加 web前端学习部落22群 120342833和其他老师还有众多的小伙伴们进行沟通交流哦,群里还有不少技术大拿.行业大牛 可以一起探讨问题,我们也会安排专业的技术老师为大家 ...

随机推荐

  1. Qt播放音视频文件报错DirectShowPlayerService::doRender: Unresolved error code 0x80040266或DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80004005 ()

    使用QMediaPlayer和QVideoWidget QHBoxLayout *m_layout=newQHBoxLayout(this); QMediaPlayer *m_player = new ...

  2. cent OS 7 安装谷歌浏览器

    我直接写一个shell 脚本,  install_google.sh,  bash 命令直接运行就好, 脚本内容如下: (切换root用户执行) set -e  # 出错即退出 echo " ...

  3. python部分笔记

    创建类和对象 图片转在自:https://www.cnblogs.com/aylin/p/5547558.html 图片转在自:https://www.cnblogs.com/aylin/p/5547 ...

  4. bootstrap基础样式学习(一)

    1.按钮btn .btn 按钮基础的样式 .btn-default 白底黑子的按钮 .btn-danger/warning/success/info/primary .btn-lg/sm/xs 按钮大 ...

  5. Delphi-基础

    一.Delphi 安装 1.1.快速启动程序,去掉加载开始欢迎页.在快捷方式--目标中添加路径 -pDelphi之后加 -np(例如,rcadero\Studio\20.p\bin\bds.exe&q ...

  6. jQYERY

    1.事件流: (1)事件捕获 (2)处于目标阶段 (3)事件冒泡 2.事件对象 对每一个事件都会回调函数,会有一个默认的事件对象,就是this event.target 触发的目标对象 event.t ...

  7. VS调试

    1.调试输出变量值 F9先设置断点,开始调试后,依次选择调试——>窗口——>局部变量和监视——>监视1. 点击“全部中断”——>之后局部变量会显示相关变量值,监视1可以查看变量 ...

  8. c# 第9节 数据类型之值类型

    本节内容: 1:数据类型是什么 1:数据类型是什么 2:数据类型--值类型 3:值类型和引用类型的区分 画图现象: 3:值类型的种类 整数: 浮点数: 字符:

  9. csp 201409-3 字符串匹配

    问题描述: 很简单,判断给定串是否在目标串中出现.分区分大小写和不区分大小写两种情况. csp特点: csp的第三题一般是字符串的处理,c++的string类虽然不好用,但是掌握的话在考试的时候可能能 ...

  10. 【Spark】

    spark-submit --class "org.apache.spark.examples.sql.JavaSparkSQLExample" --master local co ...