河南省多校联盟二-A
1279: 简单的背包问题
时间限制: 1 秒 内存限制: 32 MB
提交: 361 解决: 20
题目描述
T <= 100代表样例数
1 <= n <= 100 物品数
1 <= W <= 100000 背包的容量
1 <= wi <= 100000 每个物品的重量
对于每个i=2,3,…,N, w1 ≤ wi ≤ w1+3.
1 <= vi <= 100000 每个物品的价值
输入
T
n W
w1 v1
w2 v2
:
wn vn
输出
样例输入
2
4 6
2 1
3 4
4 10
3 4
4 6
2 1
3 7
4 10
3 6
样例输出
11
13
由于BC卡的我到死,A题数据描述没仔细看,后来才发现只有四种不同的重量的物品。
剩下的无非是对于从四种不同重量的物品中每样挑出若干件的排列组合,四重for循环即可,由于使得价值最大化,所以每次都将优先选出当前重量级物品中的价值最大的几件,预处理一下前缀和即可。
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b){return a>b;}
int main()
{
//freopen("in.txt","r",stdin);
int dp[][];
int W,n,w,i,t,j,p,k,s;
cin>>t;
while(t--){int a=,b=,c=,d=,wi,vi;
dp[][]=dp[][]=dp[][]=dp[][]=;
cin>>n>>W;
scanf("%d%d",&w,&vi);
dp[][++a]=vi;
for(i=;i<=n;++i){
scanf("%d%d",&wi,&vi);
if(wi==w){
dp[][++a]=vi;
}
else if(wi==w+){
dp[][++b]=vi;
}
else if(wi==w+){
}
else if(wi==w+){
dp[][++d]=vi;
}
}
sort(dp[]+,dp[]++a,cmp);
sort(dp[]+,dp[]++b,cmp);
sort(dp[]+,dp[]++c,cmp);
sort(dp[]+,dp[]++d,cmp);
for(i=;i<=a;++i) dp[][i]+=dp[][i-];
for(i=;i<=b;++i) dp[][i]+=dp[][i-];
for(i=;i<=c;++i) dp[][i]+=dp[][i-];
for(i=;i<=d;++i) dp[][i]+=dp[][i-];
int ans=;
for(i=;i<=a;++i)
for(j=;j<=b;++j)
for(k=;k<=c;++k)
for(p=;p<=d;++p)
if((i+j+k+p)*w+j+*k+*p<=W)
ans=max(ans,dp[][i]+dp[][j]+dp[][k]+dp[][p]);
cout<<ans<<endl;
}
return ;
}
河南省多校联盟二-A的更多相关文章
- 河南省多校联盟二-F 线段树+矩阵
---恢复内容开始--- 1284: SP教数学 时间限制: 2 秒 内存限制: 128 MB提交: 24 解决: 4 题目描述 输入 输出 对于每组数据的2操作,输出一行对1e9 + 7取模的答 ...
- 河南省多校联盟二-C
1281: 邪能炸弹 时间限制: 1 秒 内存限制: 128 MB提交: 222 解决: 80 题目描述 正在入侵艾泽拉斯的古尔丹偶然间得到了一颗邪能炸弹,经过研究,他发现这是一颗威力极其巨大且难 ...
- 山东省ACM多校联盟省赛个人训练第六场 poj 3335 D Rotating Scoreboard
山东省ACM多校联盟省赛个人训练第六场 D Rotating Scoreboard https://vjudge.net/problem/POJ-3335 时间限制:C/C++ 1秒,其他语言2秒 空 ...
- 2017.12.10《“剑锋OI”普及组多校联盟系列赛(14)#Sooke#Kornal 的课余时间 》分析报告
报告内容如下 - - [导语] ------ 太晚了,时间也紧,一切尽量从简吧 PS:本文题目来自剑锋OI 所以废话也不多说,进入正题吧,代码直接跟在题目后边儿,主要分析在代码前,次要的就写在代码后面 ...
- (2016弱校联盟十一专场10.3) D Parentheses
题目链接 把左括号看成A右括号看成B,推一下就行了.好久之前写的,推到最后发现是一个有规律的序列. #include <bits/stdc++.h> using namespace std ...
- (2016弱校联盟十一专场10.3) B.Help the Princess!
题目链接 宽搜一下就行. #include <iostream> #include<cstdio> #include<cstring> #include<qu ...
- (2016弱校联盟十一专场10.3) A.Best Matched Pair
题目链接 #include<cstdio> #include<cstring> #include<algorithm> #include<stack> ...
- 2016弱校联盟十一专场10.5---As Easy As Possible(倍增)
题目链接 https://acm.bnu.edu.cn/v3/contest_show.php?cid=8506#problem/A problem description As we know, t ...
- 2016弱校联盟十一专场10.3---We don't wanna work!(STL--set的使用)
题目链接 https://acm.bnu.edu.cn/v3/contest_show.php?cid=8504#problem/C 代码如下: #include <iostream> # ...
随机推荐
- B-、B+、B*树
B-树:多路搜索树,每个结点存储M/2到M个关键字,非叶子结点存储指向关键字范围的子结点:所有关键字在整颗树中出现,且只出现一次,非叶子结点可以命中: B+树:在B-树基础上,为叶子结点增加链表指针, ...
- Django框架_URLconf、Views、template、ORM
目录: 一.Django-MTV MTV模型 Django基本命令 视图层之路由配置系统(views) 视图层之视图函数(views) 模板层(template) 二.Django-model基础 O ...
- 腾讯 微信春招nlp实习生一面二面(猝)
一面: 1.算法题: 1 28数组中出现次数超过一半的数字 2 手写快排:八大排序算法总结(2) 2.项目介绍: 大多都是项目中涉及到的技术. TFIDF 的原理 word2vec的原理 3.算法原理 ...
- Spring-1-I 233 Matrix(HDU 5015)解题报告及测试数据
233 Matrix Time Limit:5000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Descript ...
- Winter-2-STL-E Andy's First Dictionary 解题报告及测试数据
use stringstream Time Limit:3000MS Memory Limit:0KB Description Andy, 8, has a dream - he wants ...
- git 常用的撤销操作
git 开发时的使用流程,从同事那里学习的, 第一步,先建立一个新的分支,可以在GITLAB或通过命令git checkout -b newbranch 或通过IDE插件 第二步,让项目切换到该分支, ...
- 【android】 如何把gif图片下载到本地
以上图片大家可以看到,虽然是个jpg格式的文件,但是本质上是个动图. 但是发现在咱的图片模块下,本地存储的图片只有一帧,问题出在哪里呢? http获取到的byte[]数据是没问题的 断点跟踪了下,发现 ...
- win7 eclipse设置Courier New字体
win7系统 1.控制面板-->字体.找到Courier New 字体,右键->显示,这种字体就开始变亮了. 2.eclipse里设置: windows-->Preferences- ...
- RabbitMQ 高级指南
1 RabbitMQ 简介 1.1 介绍 RabbitMQ 是一个由 erlang 开发的基于 AMQP(Advanced Message Queue)协议的开源实现.用于在分布式系统中存储转发消息, ...
- SeekArc
https://github.com/neild001/SeekArc https://github.com/imflyn/SeekArc