河南省多校联盟二-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循环即可,由于使得价值最大化,所以每次都将优先选出当前重量级物品中的价值最大的几件,预处理一下前缀和即可。
1 #include<bits/stdc++.h> 2 using namespace std; 3 bool cmp(int a,int b){return a>b;} 4 int main() 5 { 6 //freopen("in.txt","r",stdin); 7 int dp[4][444]; 8 int W,n,w,i,t,j,p,k,s; 9 cin>>t; 10 while(t--){int a=0,b=0,c=0,d=0,wi,vi; 11 dp[0][0]=dp[1][0]=dp[2][0]=dp[3][0]=0; 12 cin>>n>>W; 13 scanf("%d%d",&w,&vi); 14 dp[0][++a]=vi; 15 for(i=2;i<=n;++i){ 16 scanf("%d%d",&wi,&vi); 17 if(wi==w){ 18 dp[0][++a]=vi; 19 } 20 else if(wi==w+1){ 21 dp[1][++b]=vi; 22 } 23 else if(wi==w+2){ 24 } 25 else if(wi==w+3){ 26 dp[3][++d]=vi; 27 } 28 } 29 sort(dp[0]+1,dp[0]+1+a,cmp); 30 sort(dp[1]+1,dp[1]+1+b,cmp); 31 sort(dp[2]+1,dp[2]+1+c,cmp); 32 sort(dp[3]+1,dp[3]+1+d,cmp); 33 for(i=1;i<=a;++i) dp[0][i]+=dp[0][i-1]; 34 for(i=1;i<=b;++i) dp[1][i]+=dp[1][i-1]; 35 for(i=1;i<=c;++i) dp[2][i]+=dp[2][i-1]; 36 for(i=1;i<=d;++i) dp[3][i]+=dp[3][i-1]; 37 int ans=0; 38 for(i=0;i<=a;++i) 39 for(j=0;j<=b;++j) 40 for(k=0;k<=c;++k) 41 for(p=0;p<=d;++p) 42 if((i+j+k+p)*w+j+2*k+3*p<=W) 43 ans=max(ans,dp[0][i]+dp[1][j]+dp[2][k]+dp[3][p]); 44 cout<<ans<<endl; 45 } 46 return 0; 47 }
转载于:https://www.cnblogs.com/zzqc/p/7287265.html
河南省多校联盟二-A相关推荐
- 河南省多校联盟二-C
1281: 邪能炸弹 时间限制: 1 秒 内存限制: 128 MB 提交: 222 解决: 80 题目描述 正在入侵艾泽拉斯的古尔丹偶然间得到了一颗邪能炸弹,经过研究,他发现这是一颗威力极其巨大且 ...
- 河南省多校联盟二-F 线段树+矩阵
---恢复内容开始--- 1284: SP教数学 时间限制: 2 秒 内存限制: 128 MB 提交: 24 解决: 4 题目描述 输入 输出 对于每组数据的2操作,输出一行对1e9 + 7取模的 ...
- 哈希计划(河南省多校联盟第六次)
众所周知,LLM的算法之所以菜,就是因为成天打游戏,最近LLM突然想玩<金庸群侠传X>,结果进去后各种被虐,LLM就开始研究这个游戏的代码,顺便还学会了一点点点点lua语言,然后就开始了伟 ...
- 2017.12.10《“剑锋OI”普及组多校联盟系列赛(14)#Sooke#Kornal 的课余时间 》分析报告
报告内容如下 - - [导语] ------ 太晚了,时间也紧,一切尽量从简吧 PS:本文题目来自剑锋OI 所以废话也不多说,进入正题吧,代码直接跟在题目后边儿,主要分析在代码前,次要的就写在代码后面 ...
- 中国大学985/211表、九校联盟C9
参考: 维基百科 : 211工程 维基百科 :985工程 维基百科 :世界一流大学和一流学科建设 九校联盟 九校联盟(英文:C9 League 或者China 9),简称C9或者C9联盟, 中国九校联 ...
- 2017.12.10《“剑锋OI”普及组多校联盟系列赛(14)#Sooke#Kornal 的课余时间 》分析报告...
报告内容如下 - - [导语] ------ 太晚了,时间也紧,一切尽量从简吧 PS:本文题目来自剑锋OI 所以废话也不多说,进入正题吧,代码直接跟在题目后边儿,主要分析在代码前,次要的就写在代码后面 ...
- 【五校联盟集训】DAY 1
Contest2331 - 2022年"5校联盟"蓝桥杯软件大赛训练赛1 - BUCTOJ E 题目 活动 - AcWing 解释 用到埃氏筛选法对1~1e6+10的数字进行了预处 ...
- zzuli 2177 Contest - 河南省多校连萌(四)(简单题)
Contest - 河南省多校连萌(四) Problem F: 小姐姐的忠告:少吃辣条多刷题 题目链接 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 1 ...
- 2020 多校联盟(第一场)
2020 HDU多校联盟第一场 1004:Distinct Sub-palindromes 思路:我们通过观察可以得到当时 ,所有字符串的所有子回文串的个数都是n 当 时,每中情况都有如下所示,最小有 ...
最新文章
- .NET企业级应用架构设计系列之应用服务器
- Windows API一日一练(1)第一个应用程序
- mysql稠化报表_使用Partitioned Outer Join实现稠化报表
- 【数据结构与算法】之深入解析“安装栅栏”的求解思路与算法示例
- 洛谷 - P2617 Dynamic Rankings(树状数组套主席树)
- Python入门笔记之闭包
- linux 格式化 目录,Linux 磁盘分区、格式化、目录挂载
- pycharm运行模型时怎么设置权重?_使用AMP和Tensor Cores得到更快速,更节省内存的PyTorch模型...
- NVelocity系列:NVelocity配置详解
- [LeetCode]题解(python):012-Integer to Roman
- 7年,我从功能测试到测试开发,写给即将进入或者正在做测试的你...
- Linux-c对一个十六进制数的某一位取反
- spring通用获取ioc容器中配置的bean的工具类
- iframe父页面和子页面高度自适应
- 2021最新十大无码工具
- Python字符串逆序输出
- odb格式Linux,ODB格式文件 如何打开ODB文件 ODB是什么格式的文件 用什么打开 - The X 在线工具...
- redis集群搭建管理入门
- 如何把kafka Log4j1.x升级到Log4j2.x ?
- word使用学习总结