poj 3624 && hdu 2955(背包入门)
http://poj.org/problem?id=3624
背包中最基础的01背包,大意是有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大
主要是要有动态规划的思想,列出每个容量下的最大值,每次只考虑取或不取两种情况《一个状态一个状态的转移
#include<iostream>
#include<cstring>
using namespace std;
int dp[];
int w[],d[];
int main()
{
int n,m,i,j;
while (cin>>n>>m)
{
for (i=;i<=n;i++)
cin>>w[i]>>d[i];
memset(dp,,sizeof(dp));
for (i=;i<=n;i++)
{
for (j=m;j>=w[i];j--)
dp[j]=max(dp[j],dp[j-w[i]]+d[i]);
}
cout<<dp[m]<<endl;
}
return ;
}
http://acm.hdu.edu.cn/showproblem.php?pid=2955
有小数不好处理,所以逆向考虑,把抢银行的价值作为容量来转移
#include<cstdio>
#include<cstring>
using namespace std;
int a[];
double b[],dp[];
double max(double x,double y)
{
if (x>y) return x;
else return y;
}
int main()
{
int t,m,i,j;
double n;
while (~scanf("%d",&t))
{
while (t--)
{
scanf("%lf %d",&n,&m);
int sum=;
for (i=;i<=m;i++)
{
scanf("%d %lf",&a[i],&b[i]);
sum+=a[i];
}
memset(dp, ,sizeof(dp));
dp[]=;
for (i=;i<=m;i++)
{
for (j=sum;j>=a[i];j--)
dp[j]=max(dp[j],(-b[i])*dp[j-a[i]]);
}
int ans=;
for (i=;i<=sum;i++)
{
//printf("%lf\n",dp[i]);
if ((-dp[i])<=n&&ans<i) ans=i;
}
printf("%d\n",ans);
}
}
return ;
}
poj 3624 && hdu 2955(背包入门)的更多相关文章
- poj 3624 Charm Bracelet 背包DP
Charm Bracelet Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://poj.org/problem?id=3624 Descripti ...
- POJ 3624 Charm Bracelet 0-1背包
传送门:http://poj.org/problem?id=3624 题目大意:XXX去珠宝店,她需要N件首饰,能带的首饰总重量不超过M,要求不超过M的情况下,使首饰的魔力值(D)最大. 0-1背包入 ...
- HDU 2955 Robberies 背包概率DP
A - Robberies Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submi ...
- hdu 2191 珍惜现在,感恩生活 多重背包入门题
背包九讲下载CSDN 背包九讲内容 多重背包: hdu 2191 珍惜现在,感恩生活 多重背包入门题 使用将多重背包转化为完全背包与01背包求解: 对于w*num>= V这时就是完全背包,完全背 ...
- HDU 1248 寒冰王座(全然背包:入门题)
HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...
- HDU 1284 钱币兑换问题(全然背包:入门题)
HDU 1284 钱币兑换问题(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1284 题意: 在一个国家仅有1分,2分.3分硬币,将钱N ( ...
- POJ.3624 Charm Bracelet(DP 01背包)
POJ.3624 Charm Bracelet(DP 01背包) 题意分析 裸01背包 代码总览 #include <iostream> #include <cstdio> # ...
- POJ 2104&HDU 2665 Kth number(主席树入门+离散化)
K-th Number Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 50247 Accepted: 17101 Ca ...
- 01背包问题:Charm Bracelet (POJ 3624)(外加一个常数的优化)
Charm Bracelet POJ 3624 就是一道典型的01背包问题: #include<iostream> #include<stdio.h> #include& ...
随机推荐
- 在iOS上使用ffmpeg播放视频
国外靠谱的有这几个:1.Mooncatventures group https://github.com/mooncatventures-group 2.KxMoviePlayer (use Open ...
- Swift中的的注释
1. Swift支持与OC中相同的 /**/ ./***/ 不同点Swift支持 /*/**/ 这样的注释 ,多行注释 2. 直接双杠注释 // 单行注释 3. 利用 //MARK: 返 ...
- UIApplication 的学习
1.0 URL 的组成 == 协议头://主机名/路径 从iOS7 开始,系统提供了两种管理状态栏的方式,默认交给控制器去管理 2.0 旋转事件----> UIApplication --- ...
- 解决idea控制台乱码及项目乱码
如果控制台出现乱码,解决办法: 第1方案:.找到安装idea的路径下找idea文件下的bin中vmoptions文件,打开该文件,加上-Dfile.encoding=UTF-8 第二方案: 第3种方案 ...
- Python 如何创建2维空数组
http://blog.csdn.net/yockie/article/details/46127829 myList = [ ( [0] * 3 ) for i in range(4) ] > ...
- 关于scp在zsh报错:zsh:no matches found :
我要将某一目录下面所有文件拷贝的时候,scp *.jpg 的时候,报错 zsh: no matchs found:path 其实是zsh自己解析了*号,所以,只要给*加上就可以了\ scp \*.jp ...
- JAVA回文
package huiwen; import java.util.Scanner; public class Huiwen { public static void main(String[] arg ...
- HTTP是用来做什么的
(一)HTTP协议介绍 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.设计HTTP最初的目 ...
- python中的文件的读写
python中的 w+ 的使用方法:不能直接 write() 后,在进行读取,这样试读不到数据的,因为数据对象到达的地方为文件最后,读取是向后读的,因此,会读到空白,应该先把文件对象移到文件首位. f ...
- 1.1、CDH 搭建Hadoop在安装之前(配置网络名称)
重要: CDH需要IPv4.不支持IPv6.提示:粘合时,请使用bond0 IP地址,因为它代表所有聚合链接. 按如下方式配置群集中的每个主机,以确保所有成员可以相互通信: 将主机名设置为唯一名称(不 ...