题目部分

题目描述

有 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. Markdown 基础学习

    Markdown是什么?    Markdwon是一种轻量级标记语言,它以纯文本形式(易读.易写.易更改)编写文档,并最终以HTLM格式发布.Markdown也可以理解为将以 MARKDOWN语法编写 ...

  2. Linux文件查找与打包

    一.文件查找 locate与find是经常使用的Linux 命令,刚接触Linux时对这两个命令的使用傻傻的分不清.现在我们来对比一下两个命令到底有哪些区别. 1.1 locate locate让使用 ...

  3. 深入理解JVM虚拟机(一):JVM运行时数据区

    概述: JVM将内存的管理进行封装,使得开发人员不必关心内存申请.释放操作.但是在高级程序开发.复杂业务场景开发的时候,如果出现内存溢出的情况,对于开发人员而言就很难去分析出原因.所以还是很有必要去了 ...

  4. Nginx配置实验反向代理

    l  实验要求 浏览器访问 8083.mine.com:8081 地址,(Nginx端口是8081)通过Nginx服务器反向代理监听请求,将请求转发到tomcat服务器上,实现真正内容的访问. l  ...

  5. 关于Apache本地能访问外网不能访问的问题

    title: 关于Apache本地能访问外网不能访问的问题 date: 2018-08-05 19:22:12 tags: web --- 在配置apache和tomcat时,把它们都配置好,放到服务 ...

  6. Rust中的控制结构

    fn main() { let number = ; { println!("condition was true"); } else { println!("condi ...

  7. FFMPEG+SDL实现视频播放器

    一. 前言 基于学习ffmpeg和sdl,写一个视频播放器是个不错的练手项目. 视频播放器的原理很多人的博客都有讲过,这里出于自己总结的目的,还是会做一些概况. 二. 视频播放器基本原理 2.1 解封 ...

  8. 5-剑指offer: 和为S的两个数字

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 代码 ...

  9. linux 环境下 apache tomcat 安装jenkins

    参考文档: https://blog.51cto.com/12629984/1980034 https://www.cnblogs.com/lxs1314/p/8567652.html https:/ ...

  10. 201871010126 王亚涛 《面向对象程序设计(Java)》第十一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...