[CF3B] Lorry - 贪心
有一辆载重量为 v 的货车, 准备运送两种物品。 物品 A 的重量为 1, 物体 B 的重量为 2, 每个物品都有一个价值。 求货车可以运送的物品的最大价值。
Solution
考虑把物品分为两类,枚举 B 类选多少个,考虑到每一类中一定会优先选择价值最高的那些,排序即可
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,v,p,q,ans,ans2,ans3,c[200005],d[200005];
vector <pair<int,int> > a,b;
signed main() {
ios::sync_with_stdio(false);
cin>>n>>v;
for(int i=1;i<=n;i++) {
cin>>p>>q;
if(p==1) a.push_back(make_pair(q,i));
if(p==2) b.push_back(make_pair(q,i));
}
sort(a.rbegin(),a.rend());
sort(b.rbegin(),b.rend());
for(int i=1;i<a.size();i++) a[i].first+=a[i-1].first;
for(int i=1;i<b.size();i++) b[i].first+=b[i-1].first;
for(int i=1;i<=a.size();i++) c[i]=a[i-1].first;
for(int i=a.size()+1;i<=n;i++) c[i]=c[a.size()];
for(int i=1;i<=b.size();i++) d[i]=b[i-1].first;
for(int i=0;i<=b.size();i++) {
int tmp=d[i]+c[v-i*2];
if(ans<tmp) {
ans=tmp;
ans2=i;
ans3=min((int)(a.size()),min(n*2,v-i*2));
}
}
cout<<ans<<endl;
for(int i=0;i<ans2;i++) cout<<b[i].second<<" ";
for(int i=0;i<ans3;i++) cout<<a[i].second<<" ";
}
[CF3B] Lorry - 贪心的更多相关文章
- [CF3B]Lorry
题目大意: 有$n(n\leq 10^5)$个物品,背包的容量为$m(m\leq 10^9)$.每个物品有重量$w_i(w_i\in\{1,2\})$和价值$v_i(v_i\leq 10^4)$.问最 ...
- BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]
1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1383 Solved: 582[Submit][St ...
- HDOJ 1051. Wooden Sticks 贪心 结构体排序
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]
1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 786 Solved: 391[Submit][S ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【BZOJ-4245】OR-XOR 按位贪心
4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 486 Solved: 266[Submit][Sta ...
- code vs 1098 均分纸牌(贪心)
1098 均分纸牌 2002年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有 N 堆纸牌 ...
- 【BZOJ1623】 [Usaco2008 Open]Cow Cars 奶牛飞车 贪心
SB贪心,一开始还想着用二分,看了眼黄学长的blog,发现自己SB了... 最小道路=已选取的奶牛/道路总数. #include <iostream> #include <cstdi ...
随机推荐
- 07.JS对象-2
前言: 学习一门编程语言的基本步骤(01)了解背景知识(02)搭建开发环境(03)语法规范(04)常量和变量(05)数据类型(06)数据类型转换(07)运算符(08)逻辑结构(09)函数(10)对象1 ...
- Mumbai:1 Vulnhub Walkthrough
靶机地址: https://www.vulnhub.com/entry/mumbai-1,372/ 主机探测: 主机端口扫描: FTP 下载Note文件 TODO: Move these multip ...
- MongoDB高可用架构集群管理(一)
MongoDB数据库核心的两个特点:第一个特点是副本集的自动切换,保证数据的高可靠.服务的高可用:第二个特点是自动分片.服务的横向扩展能力. (一)副本集架构 MongoDB的副本集是一组保持相同数据 ...
- kubernetes安装-二进制
主要参考https://github.com/opsnull/follow-me-install-kubernetes-cluster,采用Flanel和docker 系统信息 角色 系统 CPU C ...
- 2019年IT事故盘点【IT必读】
昀哥@老兵笔记 2020农历新年开局不容易,新冠肺炎仍在攻艰克难阶段.回首过去的9102年,总有一些事主要是事故值得去记录.下面我们来盘点一下9102年的“外部事故”. 一,我们遭遇的IT基础设施服务 ...
- C. Long Beautiful Integer
题目思路还是很直接,首先按要求生成字符串.如果该目标字符串小于原字符串,那么从第k位开始,找到最后一个非9的位置,++,同时如果有9,要考虑进位(一开始没有考虑WA了一次). 犯了一个错误,就是比较字 ...
- Anaconda 常用命令
目录 包管理 环境管理 共享环境设置 包管理 安装包 conda install xxx conda install pandas ; conda install pandas numpy ; 同时安 ...
- HDU1163 - Eddy's digital Roots
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1163 九余数:一个数除于9所得到的余数,即模9得到的值 求九余数: 求出一个数的各位数字之和,如果是两 ...
- javaweb 公文流转系统制作
该系统主要的要求就是实现公文的流转审核,用户有多重类型,在不同用户登录的时候要进入不同的页面,并能执行他们的权限. 用户分四种,普通部门(可以草拟公文并提交),办公室(接受普通部门的公文并编辑,最后提 ...
- Spark学习之路 (十)SparkCore的调优之Shuffle调优[转]
概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO.序列化.网络数据传输等操作.因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优 ...