有一辆载重量为 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<<" ";
}

最新文章

  1. xlwt写入中文操作不成功,提示UnicodeDecodeError: ascii codec can&#39;t decode byte ...
  2. NPOI基本操作XLS
  3. Codeforces Round #246 (Div. 2) B. Football Kit
  4. AFNetworking 3.0 版本使用
  5. Dell_r720服务器部署
  6. DIV+CSS命名规范-转载2
  7. 状压DP
  8. C# 实例化接口对象
  9. SDK &quot;iphoneos&quot; cannot be located
  10. android 案例:从另一个activity选择信息并获取返回值
  11. Bzoj 3694: 最短路 树链剖分
  12. Eclipse SVN插件的帐号、password改动
  13. WEB打印的几种方案
  14. (转载)Git使用教程
  15. ReactiveCocoa源码解读(一)
  16. 解决 APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tas
  17. ASP.NET Core 下自定义权限验证
  18. wget命令使用报错 certificate common name &#39;xxx&#39; doesn&#39;t match requestde host name
  19. light sdk
  20. 解决 Command &quot;python setup.py egg_info&quot; failed with error code 1 问题

热门文章

  1. 【Go语言系列】2.3、Go语言基本程序结构:变量及常量
  2. Redis 为什么这么快?
  3. 【HDU - 1029】Ignatius and the Princess IV (水题)
  4. View Binding初探
  5. textarea输入文字限制个数
  6. JS高阶编程技巧--惰性函数
  7. css字体样式+文本样式
  8. c#---params参数
  9. 聊聊智能指针 auto_ptr、shared_ptr、weak_ptr和unique_ptr
  10. C# 调用APlayer教程