杭电 2191 悼念512汶川大地震遇难同胞—珍惜现在,感恩生活
题目大意
原题链接:HDOJ 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
解题思路
我本来想用贪心算法的,可是我写好算法,运行几遍试过了是ok的,只是不给AC,我想了好久,脑壳都快头秃了,才看到一个人的博客里的分析才理解为什么不能使用贪心算法。
#include<bits/stdc++.h>
using namespace std;struct rice{int p; int h;int c;double rate;
}r[110]; bool cmp(rice a,rice b){return a.rate<b.rate;
} int main()
{int C,n,m;cin>>C;while(C--){cin>>n>>m; //n表示经费,m表示大米的种类 for(int i=1;i<=m;i++){cin>>r[i].p>>r[i].h >>r[i].c ; // p每袋的价格;h每袋的重量;c对应种类大米的袋数 r[i].rate =(double)r[i].p/(double)r[i].h ; }sort(r,r+m+1,cmp);double res=0;for(int i=1;i<=m;i++){if(r[i].p *r[i].c >=n){res=res+r[i].h *(n/r[i].p)*1.0; break; }else{res=res+r[i].c *r[i].h *1.0;n=n-r[i].p *r[i].c *1.0; } }cout<<res<<endl;}return 0;}
我认为这个分析是正确的,所以就只能将完全背包转化为01背包问题解决。
代码实现
#include<bits/stdc++.h>
using namespace std;int c[105],v[105],b[105];
int dp[105];int main()
{int n,m,t;cin>>t;while(t--){cin>>n>>m;for(int i=1;i<=m;i++)cin>>c[i]>>v[i]>>b[i];memset(dp,0,sizeof(dp));for(int i=1 ;i<=m;i++)for(int j=1;j<=b[i];j++)for(int k=n;k>=c[i];k--){dp[k]=max(dp[k],dp[k-c[i]]+v[i]);}cout<<dp[n]<<endl;}return 0;
}
杭电 2191 悼念512汶川大地震遇难同胞—珍惜现在,感恩生活相关推荐
- HDUOJ 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
HDUOJ 2191 悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 题目链接 Problem Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采 ...
- HDU - 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 HDU - 2191 AYIT-2021 609暑假集训第一周下 记忆化搜索和背包 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的 ...
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191 题意:标准的多重背包,由于数据量较小,可转化为0-1背包. /*悼念512汶川大地震遇难同胞-- ...
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (背包问题)
悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/ ...
- [HDU 2191] 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
悼念512汶川大地震遇难同胞--珍惜现在,感恩生活 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- nyoj106背包问题为模板解出杭电oj2187悼念512汶川大地震遇难同胞——老人是真饿了
背包问题 时间限制: 3000 ms | 内存限制: 65535 KB 难度: 3 描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w&l ...
- 杭电--2187 悼念512汶川大地震遇难同胞——老人是真饿了(贪心)
本题连接:点击打开链接 悼念512汶川大地震遇难同胞--老人是真饿了 对于幸存的灾民来说,最急待解决的显然是温饱问题,救灾部队一边在组织人员全力打通交通,一边在组织采购粮食.现在假设下拨了一定数量的救 ...
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
传送门 Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格 ...
- HDU 2191 - 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (多重背包)
题目 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的CK准备自己采购一些粮食支援灾区,现在假设CK一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买 ...
最新文章
- 关于多目标任务有趣的融合方式
- docker+jenkins+maven+svn
- 一文详解Google最新NLP模型XLNet
- 多线程—线程池Executor框架及四种常用线程池
- P5253-丢番图【数论】
- 实验三+067+冯艳芳
- spark structured stream的Append模式例子
- 4. Storm可靠性
- HashPasswordForStoringInConfigFile 已过时
- spring 事务的传播行为详解(转)
- Unity3D游戏框架设计
- WPS/Word参考文献格式规范及引用的方法
- 疯狂java讲义pdf百度云,附大厂真题面经
- idea 右键修复lint格式问题
- Python数据分析-二手车数据用于机器学习二手车价格预测
- 常用论文检查语法错误软件和网址
- nginx安装 打开php文件自动下载的问题
- 2020使用html、js、正则表达式做一个前端注册表单信息验证
- 没有公网IP,快速免费内网穿透
- 大疆不仅为工程师办比赛,还为他们量身制作了一部动画