luogu p2705 小球
题目部分
题目描述
有 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 小球的更多相关文章
- Luogu[SDOI2008]Sue的小球
题目描述 Sue和Sandy最近迷上了一个电脑游戏,这个游戏的故事发在美丽神秘并且充满刺激的大海上,Sue有一支轻便小巧的小船.然而,Sue的目标并不是当一个海盗,而是要收集空中漂浮的彩蛋,Sue有一 ...
- 题解 Sue的小球/名次排序问题/方块消除/奥运物流
Sue的小球 名次排序问题 方块消除 奥运物流 Sue的小球 题目大意 有 \(n\) 个小球在下落,初始位置 \((x_i,y_i)\),下落速度为 \(v_i\).你初始位置在 \(x_0\),速 ...
- 【webGl】threejs实现一个简单的动画-弹跳的小球
在这里,我们将动态画面简称为动画(animation).正如动画片的原理一样,动画的本质是利用了人眼的视觉暂留特性,快速地变换画面,从而产生物体在运动的假象.而对于Three.js程序而言,动画的实现 ...
- HTML5 Canvas彩色小球碰撞运动特效
脚本简介 HTML5 Canvas彩色小球碰撞运动特效是一款基于canvas加面向对象制作的运动小球动画特效. 效果展示 http://hovertree.com/texiao/html5/39/ ...
- 纯CSS3实现3D跳动小球
请使用Chrome,火狐的浏览器查看本页面,使用IE将看不到效果.如果在本页看不到一个跳动的小球,请确定您的浏览器支持CSS3,或者访问http://keleyi.com/a/bjac/iphgrtq ...
- HTML5 随机弹跳的小球
查看效果:http://keleyi.com/a/bjad/tc1y11dy.htm Chrome效果图: 火狐效果图:推荐:http://hovertree.com/texiao/css3/18/ ...
- WPF实现物理效果 拉一个小球
一直以来都对物理效果有神秘感,完全不知道怎么实现的.直到看到了周银辉在老早前写的一篇博客:http://www.cnblogs.com/zhouyinhui/archive/2007/06/23/79 ...
- HTML5CSS3特效-上下跳动的小球-遁地龙卷风
(-1)写在前面 我用的是chrome49,这个idea是我在stackoverflow上回答问题时看到了,多谢这位同行,加深了我对很多技术点的理解,最近刚到北京,忙碌了一两天,在后续的日子里,会被安 ...
- 【web前端学习部落22群】分享 碰撞的小球开源小案例
对于课程中的疑问,大家可以加 web前端学习部落22群 120342833和其他老师还有众多的小伙伴们进行沟通交流哦,群里还有不少技术大拿.行业大牛 可以一起探讨问题,我们也会安排专业的技术老师为大家 ...
随机推荐
- ASP.NET Core系列:JWT身份认证
1. JWT概述 JSON Web Token(JWT)是目前流行的跨域身份验证解决方案. JWT的官网地址:https://jwt.io JWT的实现方式是将用户信息存储在客户端,服务端不进行保存. ...
- CI/CD DevOps
CI/CD DevOps 通过技术工具链完成持续集成CI.持续交付CD.用户反馈和系统优化的整合,实现跨团队的无缝协作(DevOps). 什么是持续集成? 他是开发每天代码更新的副本,所有的开发工作都 ...
- [转]技术比较Agent和Agentless监控优缺点
本文并非原创,转自:http://wenku.baidu.com/link?url=NGT2NA7Lf6fZSPmcOxFQqL4cYROHlIOJyiWCnGdwv3kljMqub-6zyjgsSw ...
- springcloud学习之路: (五) springcloud集成SpringCloudConfig分布式配置中心
SpringCloud全家桶中的分布式配置中心SpringCloudConfig, 它使用git来管理配置文件, 在修改配置文件后只需要调用一个接口就可以让新配置生效, 非常方便. SpringClo ...
- jmeter压测学习7-登录参数化(CSV 数据文件设置)
前言 我们在压测登录接口的时候,如果只用一个账号去设置并发压测,这样的结果很显然是不合理的,一个用户并发无法模拟真实的情况. 如果要压测登录接口,肯定得准备几百,甚至上千的账号去登录,测试的结果才具有 ...
- 虚拟机使用配置固定IP
首先打开虚拟机 打开xshell5连接虚拟机(比较方便,这里默认设置过Linux的ip,只是不固定) 输入ifconfig,可以查看网管相关配置信息: 然后输入 vi /etc/sysconfi ...
- webpy安装
C:\Users\ceshi>python -m pip install web.pyCollecting web.py Downloading web.py-0.38.tar.gz (91kB ...
- CF1193A Amusement Park
洛谷 CF1193A Amusement Park 洛谷传送门 题目翻译 有一个游乐场有一个好玩的项目:一些有向滑梯可以将游客从一个景点快速.刺激地传送到另一个景点.现在,你要帮游乐场老板来规划一个造 ...
- 了解html表单
html表单 表单的根标签:form form标签属性 action:处理表单业务的后台代码的位置(URL) method:提交方式 post get 默认值 enctype:encode type ...
- map、set 使用方法 | 1022 图书馆信息查询
看了答案才知道了这题的各种骚操作,然后敲了一顿骚键盘,然后wa.调了很久,才发现要规格化打印……mdzz…… 注:加粗代码为傻逼规格化打印代码: #include <stdio.h> #i ...