sdut2408 pick apples (贪心+背包)山东省第三届ACM省赛
版权声明:本文为博主原创文章。未经博主同意不得转载。
https://blog.csdn.net/svitter/article/details/24642587
本文出自:http://blog.csdn.net/svitter/
题意:三种苹果,每种都有相应的Size,Value,给你一个背包空间,求最大的价值。
本题目的关键就在于很大的背包空间
根据indicates the size (1 <= S<=
100) 我们能够考虑在1000000(100^3)之外的空间放性价比最高的苹果。
为什么时100^3?
要知道背包假设正好填满,而填满空间相应价值的苹果大于不填满的价值的苹果,那么就选择能填满空间而使价值最大的苹果,而非性价比最高的苹果——性价比高的苹果可能由于剩下的空间不足,而造成空间利用不充分达不到最大价值。100^3大于不论什么3个苹果的Size的最大公倍数,所以选择100^3这个数字。
另:之前把f[1000001]初值赋值为-1, 以此来求背包- =太水了= =全然没有考虑到最后一个f[BagSize]可能为-1的情况。然后写了一个找不是-1的最大Bag值,又水了- =当赋值-1的时候。未必最大的就是空间用的最多的。
简单举例:
BagSize 60, a[1] 59/30, a[2].size 58/31 a[3].size 57/32;
贴代码:
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
#define lln long long int
struct Apple
{
int Value;
int Size;
double Cost;
};
Apple a[3];
lln f[1001000];
void ace()
{
int t, i, j, no, most;
int BagSize, tempBag;
double cost;
lln RestNum, ans, RestValue;
int Size;
scanf("%d", &t);
for(no = 1; no <= t; no++)
{
memset(f, 0, sizeof(f));
f[0] = 0;
most = 0; cost = 0;
for(i = 0; i < 3; i++)
{
scanf("%d %d", &a[i].Size, &a[i].Value);
a[i].Cost = ((double) a[i].Value) / a[i].Size;
if(a[i].Cost > cost)//find the most
{
most = i;
cost = a[i].Cost;
}
}
scanf("%d", &BagSize);
RestNum = 0;
RestValue = 0;
//大于1000的时候,把性价比最高的苹果填入
if(BagSize > 1000000)
{
tempBag = BagSize - 1000000;
RestNum = tempBag / a[most].Size;
BagSize -= RestNum * a[most].Size;
RestValue = RestNum * a[most].Value;
}
//剩余的苹果使用背包
for(i = 0; i < 3; i++)
{
Size = BagSize - a[i].Size;
for(j = 0; j <= Size; j++)
{
f[j + a[i].Size] = max(f[j + a[i].Size], f[j] + a[i].Value);
}
}
ans = RestValue + f[BagSize];
printf("Case %d: %lld\n", no, ans);
}
}
int main()
{
ace();
return 0;
}
sdut2408 pick apples (贪心+背包)山东省第三届ACM省赛的更多相关文章
- 山东省第三届ACM省赛
Solved ID PID Title Accepted Submit A 2407 Impasse (+) 0 0 B 2415 Chess 0 0 C 2414 An interest ...
- Sdut 2409 The Best Seat in ACM Contest(山东省第三届ACM省赛 H 题)(模拟)
题目描述 Cainiao is a university student who loves ACM contest very much. It is a festival for him once ...
- Sdut 2416 Fruit Ninja II(山东省第三届ACM省赛 J 题)(解析几何)
Time Limit: 5000MS Memory limit: 65536K 题目描述 Haveyou ever played a popular game named "Fruit Ni ...
- [原]sdut2624 Contest Print Server (大水+大坑)山东省第四届ACM省赛
本文出自:http://blog.csdn.net/svitter 原题:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&am ...
- [2012山东省第三届ACM大学生程序设计竞赛]——n a^o7 !
n a^o7 ! 题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2413 Time Lim ...
- [2012山东省第三届ACM大学生程序设计竞赛]——Mine Number
Mine Number 题目:http://acm.sdut.edu.cn/sdutoj/problem.php? action=showproblem&problemid=2410 Time ...
- 2012年"浪潮杯"山东省第三届ACM大学生程序设计竞赛--n a^o7 ! 分类: 比赛 2015-06-09 17:16 14人阅读 评论(0) 收藏
n a^o7 ! Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 All brave and intelligent fighte ...
- 山东省第八届ACM省赛游记
Day 1: 凌晨,来了几分兴致,和队友在VJudge上开了一把zoj月赛,WA一发闷一口拿铁,一瓶拿铁 不一会就被喝完了!好气啊!遂开始愉快地打游戏,打着打着,woc,居然3点半了,小睡片 刻,咬上 ...
- 山东省第五届ACM省赛
题目链接:http://acm.sdut.edu.cn/sdutoj/contest_show.php?contest_id=1449 相关总结:http://www.cnblogs.com/mcfl ...
随机推荐
- [HEOI2012]采花
第一眼以为是树套树qwq 然而n,m<=1e6 记上一个与i颜色相同的位置为nxt[i] 考虑i和nxt[i]会对那些询问产生贡献. 发现当右端点R>=i时, 左端点只要满足nxt[nxt ...
- 转 解决linux下tomcat的shutdown命令杀不死进程
tomcat在windows下可以直接关闭,但是貌似在Linux下有时候shutdown.sh 没有关闭tomcat进程; 现象:在Linux下shutdown.sh ,然后查看tomcat进程发现没 ...
- http 中的 Get 与 Post
GET 和 POST 是 HTTP 请求的两种基本方法 —— Http 定义了(客户端.浏览器)与服务器交互的不同方法,最基本的方法有4种, 分别是GET,POST,PUT,DELETE.(HTTP协 ...
- WinForm窗体下Excel的导入
一.Winform窗体程序的Excel的导入 把Excel导入到内存中的DataTable 方法实现: #region ExcelToDataTable public static DataTable ...
- 关于list集合存储null的问题
工作中,遇到list集合存储null的问题,不确定list能否存储null值.于是写一些demo测试list,set,table,及map存储null的问题. 1.list之arraylist pub ...
- How to pass string parameters to an TADOQuery?
http://4byte.cn/question/1130217/how-to-pass-string-parameters-to-an-tadoquery.html 从2个答案看,如果TADOQue ...
- docker 部署 flask(一)配置环境及测试
简介: flask也是要部署的.不能老在我们的pycharm里面跑测试服务器. 各种配置linux,我看就算了吧.我们用docker部署. 也就两三行命令. 一:选择基础镜像 GitHub repo: ...
- Apache Tomcat/6.0.39如何配置连接mysql,JDBC:mysql-connector-java-5.1.30-bin.jar-成功连接心得
http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html 前提:开启TOMCAT,MYsql MySQL ...
- Jmeter系列培训(1)--开山篇
一直以来,我们不断分享,有的人喜欢,也有的人不喜欢,这都没什么,喜欢的点个赞,留个言,不喜欢的就不看好了,今天我们继续,关于jmeter我们分享了很多工作遇到的问题的解决方案,但是很多 ...
- [ML] 解决样本类别分布不均衡的问题
转自:3.4 解决样本类别分布不均衡的问题 | 数据常青藤 (组织排版上稍有修改) 3.4 解决样本类别分布不均衡的问题 说明:本文是<Python数据分析与数据化运营>中的“3.4 解决 ...