题目如下:

以前,有个神秘的院子里面有三种苹果,每个苹果的数量是无限的。有一个小姑娘带了一个大袋子来到院子,她从来没见过这么多的苹果。每种苹果都有大小以及出售的价格,小姑娘想获得最大的利润,但是她不知道怎么才能做到。于是她来向你寻求帮助,你能告诉她能获得的最大价值吗?

第一行一个整数T(T <= 50),表示测试数据的组数。
每组测试数据有四行组成,前三行每行有两个整数S和P,分别表示每种苹果的大小(1 <= S <= 100)和价格(1 <= P <= 10000)
第四行有一个整数V(1 <= V <= 100,000,000)表示小姑娘袋子的大小。

刚看到这个题以为是完全背包,但是看完数据量之后看到背包大小为100000000,所以这个题肯定是不止要用完全背包就可以解决。然后就行到了贪心方法,先将大部分背包用性价比最高的方式填满,然后剩下的在使用完全背包求取最优值,此时的计算结果就可以将背包的价值最大化。

#include<iostream>
using namespace std;
#define ll long long
#include<algorithm>
#include<cstring>struct node
{ll x,y;double z;bool operator<(const node &q) const{return z>q.z;}
} a[4];
ll dp[1001];
int main()
{ll t;cin>>t;for(ll o=1; o<=t; o++){memset(dp,0,sizeof dp);for(int i=1; i<=3; i++){cin>>a[i].x>>a[i].y;a[i].z=(double)((double)a[i].y/(double)a[i].x);}sort(a+1,a+4);ll sum=0;ll bag;cin>>bag;if(bag>1000){sum+=((bag-1000)/a[1].x+1)*a[1].y;bag-=((bag-1000)/a[1].x+1)*a[1].x;}for(int i=1; i<=3; i++)for(int j=a[i].x; j<=bag; j++)dp[j]=max(dp[j],dp[j-a[i].x]+a[i].y);cout<<"Case "<<o<<": "<<sum+dp[bag]<<endl;}
}

捡苹果(贪心加背包)相关推荐

  1. 王者荣耀android加ios好友,王者荣耀安卓和苹果能加好友吗 安卓和ios怎么加好友...

    王者荣耀跨系统互通又开启了,也就是说安卓可以和苹果一起玩了,不过微信和QQ区仍然无法互通,这个预计也不会开放,那么安卓和苹果能加好友吗?能的话怎么加好友?琵琶网小编接下来就给大家分享一下相关资讯. 王 ...

  2. 苹果6s上市时间_iPhone 12 销量火爆,苹果紧急加单

    原标题:iPhone 12 销量火爆,苹果紧急加单 iPhone 12 从预售到上市销售的情况来看,今年的新 iPhone 相当受欢迎,Apple Store 每天挤满了体验新 iPhone 的用户, ...

  3. 防丢背包层出不穷,Swissdigital design 苹果Find My背包

    防丢背包层出不穷,Swissdigital design 苹果Find My背包 前不久配件制造商Targus发布支持苹果Find My的背包,这款背包配备了一个小型跟踪模块,可以在iPhone.iP ...

  4. 捡苹果(背包+贪心)

    http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=4811 Description 以前,有个神秘的院子里面有三种苹果,每个苹果的数量是无限的.有一 ...

  5. hdu 2546 饭卡【贪心+01背包基础题】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=2546 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  6. NYOJ 289 苹果(01背包)

    苹果 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 ctest有n个苹果,要将它放入容量为v的背包.给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值. 输 ...

  7. 栈的应用--马踏棋盘-贪心加栈

    问题描述 问题牵引: 1.为什么用数组来作为栈的实现,而不是动态分配,指针加减? 2.directionNext和count数组起了什么作用?是如何实现的? 3.为什么需要while(1)?它是如何起 ...

  8. Codeforces 913 二进制背包(柠檬水) 暴力贪心特殊背包(选题)

    A B C 给你N(N<=30)种水瓶每种水瓶有无限个 每个的体积是2^(i-1)价格是cost[i] 要求你花最少的钱弄出L体积的水 先从前到后扫一遍cost[i+1]=min(cost[i+ ...

  9. Asia Yokohama Regional Contest 2018 K题 - Sixth Sense(思维加贪心加二分)

    https://codeforces.com/gym/102082 题意 两个人玩n轮游戏,每次两个人各取一个数,并且已知对手的取数顺序,如果你取的数比他大就算赢一轮,求能赢最多轮次的取法,如果有多种 ...

最新文章

  1. 1930年的上海是什么样
  2. [翻译] C# 3.0语言规范 收藏
  3. 可编程CDN – EdgeScript应用场景、语言速览和实操演示
  4. 【Flink】Flink 写入 MySQL主键冲突 默认Upsert策略
  5. 【mac】Mac 安装Brew命令
  6. 华为荣耀7能改成Linux吗,华为荣耀7电池怎么样?华为荣耀7可以更换电池吗?
  7. Ranorex中Global变量的使用
  8. thymeleaf学习笔记
  9. 基于Yolov5目标检测的物体分类识别及定位(二) -- yolov5运行环境搭建及label格式转换
  10. 微软商店下载显示错误,win11无法下载更新的解决方法
  11. EDEM 2020的安装
  12. IE假死-在地址栏输入URL地址弹出新窗口的解决方法
  13. TopCoder 规则入门
  14. Oracle 官网共享账号
  15. 计算该年该月该日天数 一年中有 12 个月,而每个月的天数是不一样的。其中大月 31 天,分别为 1,3,5,7,8,10,12 月,小月 30 天,分别 为 4,6,9,11 月。
  16. 23、Numpy IO
  17. python查找中间值
  18. 窒息操作:AtCoder Regular Contest 152 A-Seat Occupation
  19. windows二维码工具3.0
  20. bulk插入 es_Elasticsearch 使用bulk批量导入数据

热门文章

  1. 原点手机发布:首创呼吸灯交互触控体验
  2. 温州市大学生创业园风险投资与创业融资分享会
  3. 灯具照明行业MES系统,助力企业实现数字化转型
  4. 远程服务器添加共享文件夹,远程服务器添加共享文件夹
  5. 软件工程 学生信息管理系统 结构化的需求分析
  6. eos5.3报表显示list问题求解
  7. CSS——获得焦点元素
  8. 【小米】【Audio】玩《植物大战僵尸》进游戏后,锁屏,扬声器过几分钟有杂音
  9. php option explicit,option explicit语句不可以放在
  10. 异步编程有哪几种方法来实现?