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& ...
随机推荐
- python垃圾回收机制(转)
Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾.在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的 ...
- 1.3.4、CDH 搭建Hadoop在安装之前(端口---Impala使用的端口)
Impala使用的端口 Impala使用下表中列出的TCP端口.在部署Impala之前,请确保在每个系统上打开这些端口. Component Service Port Access Requireme ...
- java中几个happens-before规则
1. 程序顺序规则:一个线程中的每个操作,happens-before 该线程中的任意后续操作. 2.监视器锁规则:对一个锁的解锁, happens-before 于随后对这个锁的加锁操作 3.vol ...
- sql 2012的补丁 SP4下载地址
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=56040
- sublime text3的注册码以及常用方法
Michael BarnesSingle User LicenseEA7E-8213858A353C41 872A0D5C DF9B2950 AFF6F667C458EA6D 8EA3C286 98D ...
- PropertyGrid控件动态生成属性及下拉菜单 (转)
http://blog.sina.com.cn/s/blog_6f14b7010101b91b.html https://msdn.microsoft.com/zh-cn/library/ms1718 ...
- 七 shelve模块
shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而值可以是python所支持的数据类型 import shelve f=shelve.o ...
- python使用websocket简单组建聊天室
server端 ###websocket_server### import socket import threading sock = socket.socket(socket.AF_INET, s ...
- matlab读取excel里的数据并用imagesc画图
把矩阵数据保存在excel里 比如文件为 a.xlsx 通过下面的程序读取 a=xlsread('\文件保存的目录\a.xlsx'); figure(1); imagesc(a) colormap(h ...
- openstack(Pike 版)集群部署(七)--- Cinder 部署
一.介绍 参照官网部署:https://docs.openstack.org/cinder/pike/install/index-rdo.html 继续上一博客进行部署:http://www.cnbl ...