CF 3B. Lorry   点击打开链接

题意:有体积为1或2的物品共n种 你的容量为m,求你最多可以拿到多少价值的物品。

思路:贪心的思维 再加上尺取法求得最大的价值,这是我看大佬的博客才写出来的,故将之分类为转载。

定义一个结构体,记录体积 w,价值v,下标 index.然后将重量为1的按升序排在前面,重量为2的按降序排在后面,然后尺取。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<string>
using namespace std;
#define MAXN 100000+10
struct Node{int w,v,index;}node[MAXN];int n,m;int cmp(const Node &p,const Node &q){if(p.w!=q.w){return p.w<q.w;}else if(p.w==1){return p.v<q.v;}elsereturn p.v>q.v;}int main(){while(~scanf("%d%d",&n,&m)){for(int i=1;i<=n;i++){int x,y;scanf("%d%d",&x,&y);node[i].index=i;node[i].v=y;x==1?node[i].w=1:node[i].w=2;}sort(node+1,node+n+1,cmp);int MAX=0,w1=0,v1=0,MAXi=1;for(int i=1,j=1;i<=n;i++){w1+=node[i].w;v1+=node[i].v;while(w1>m){w1-=node[j].w;v1-=node[j].v;j++;//如果超过容量 就将上次加进来的减去,//}if(v1>MAX){MAX=v1;MAXi=j;}//用Max几录最大总价值//}printf("%d\n",MAX);w1=v1=0;for(int j=MAXi;j<=n;j++){w1+=node[j].w;v1+=node[j].v;if(w1>m)break;j==MAXi?printf("%d",node[j].index):printf(" %d",node[j].index);}puts("");}return 0;}

转载于:https://www.cnblogs.com/Levi-0514/p/9042499.html

CF 3B. Lorry相关推荐

  1. CF 3B Lorry

    题目大意:有n(n≤105)(n\leq 10^5)个货物,分为两种,一种占空间1,一种占空间为2,每个货物都有一定的价值,有大小为v(v≤109)(v\leq 10^9)的背包,如何装能够使得价值最 ...

  2. 【CF】3B Lorry

    这道题目网上有几个题解,均有问题.其实就是简单的贪心+排序,没必要做的那么复杂. 一旦tot+curv > v时,显然curv==2, 有三种可能: (1)取出最小的curv==1的pp,装入当 ...

  3. CodeForces 3B Lorry 贪心

    题目大意是有体积为v的背包,有体积为1和2的两种物品若干,这些物品都有各自的价值.求如何取这些物品可使背包中物品的价值最大. 开始一看到是背包就傻眼了==因为数据量太大1 ≤ n ≤ 105; 1 ≤ ...

  4. CodeForces 3-B Lorry

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #i ...

  5. codeforce 3B lorry (贪心)

    有货车运量V: 有若干物品A 占2单位体积,有若干物品B占1单位体积: 相同种类的物品价值不一定一样: 序号按照输入顺序而定: 问货车可以拉走最多多少价值的物品,并输出所选物品的序号: 思路:贪心,先 ...

  6. codeforce 3B. Lorry(贪心)

    题目:http://codeforces.com/problemset/problem/3/B 大意是,给定N和V,在给出N个vehicle的类型号(1或2)和各自的载重量,求在不超过V的情况下最大的 ...

  7. Android资源分离,可分离Android操作系统报告:硬件环境检测文件(十)(分析)...

    可分离Android操作系统报告:硬件环境检测文件(十)(分析) (2018-04-18 12:23:58) 标签: it 0x38000-终  1F E0 8E 05 60 29 1C ED A8 ...

  8. Delphi - 注入的方式来禁止任务管理器

    转载一个单元,不过有时候会蓝屏的,因为它这个Dll应该还有点儿问题吧. unit Fuck_CAD_Unit; interface uses Windows, TLHelp32,SysUtils; c ...

  9. RSA 非对称加密算法简述

    RSA概述 首先看这个加密算法的命名.很有意思,它其实是三个人的名字.早在1977年由麻省理工学院的三位数学家Rivest.Shamir 和 Adleman一起提出了这个加密算法,并且用他们三个人姓氏 ...

最新文章

  1. 我是架构师-设计模式-工厂模式-工厂方法
  2. php操作session
  3. Google, 请不要离开我们!
  4. oracle 加密怎么解密,oracle加密encrypt,解密decrypt,
  5. 一二三系列之优先队列、st表——Battle,Heapsort,A Magic Lamp
  6. [html] 说说你对HTML5中pattern属性的理解
  7. dbunit java_java - 错误地抛出了Java DBUnit AmbiguousTableNameException - 堆栈内存溢出
  8. python terminal调试_python执行命令行调试工具pdb
  9. Hadoop核心生态
  10. ROS笔记(8) 服务通信
  11. xEasyApp之后端的介绍
  12. macOS如何查看pkg安装包中的内部文件
  13. 视频分析的非局部(non-local) 神经网络模块
  14. 12306查询车票信息返回的数据解析
  15. 联想笔记本无法开启无线网卡的方法
  16. 缓慢变化维解决方案——拉链表实现详解
  17. 读书笔记——OpenGL超级宝典
  18. 集线器、路由器、网桥(桥接器)、网关、网线、交换机、中继器(转发器)、网卡工作在哪一层
  19. Dispatch I/O
  20. Android集成百度语音识别

热门文章

  1. java中format
  2. Broadcast的onReceive方法中弹出AlertDialog
  3. Facebook Surround360 学习笔记--(4)色彩/视差不一致问题
  4. 批量备份交换机路由器配置
  5. linux下pfam使用方法,无root权限安装Pfam的笔记
  6. html基本页面的构成,HTML网页的基本组成概述
  7. 使用easyBCD在Win10下安装Ubuntu16.04LS双系统详细教程
  8. 2021Q3展锐智能手机芯片全球市占率达10%
  9. 分节符、实现文档横竖打印
  10. 差分隐私 深度学习_深度学习中的差异隐私