题目大意:有n件珠宝,每个珠宝的魅力值为v,重量为w,求在重量不超过m的情况下能达到的最大魅力值。

题目思路:简单的01背包,由于二维数组会超内存所以应该压缩成一维数组。

dp[i][j],表示选取i件物品,重量为j的情况下能达到的最大魅力值,则容易推出dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[j]),可以看出当前的dp[i][j]只和前一轮有关,所以可以采用滚动数组的办法进行压缩:dp[j]=max(dp[j],dp[j-w[i]]+v[i]).

#include<cstdio>
#include<stdio.h>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<queue>
#define INF 0x3f3f3f3f
#define MAX 100005 using namespace std; int v[MAX],w[MAX],dp[MAX]; void Init()
{
memset(dp,,sizeof(dp));
memset(w,,sizeof(dp));
memset(v,,sizeof(v));
}
int main()
{
int n,m,i,j,a[MAX]; while(scanf("%d%d",&n,&m)!=EOF)
{
Init();//初始化 for(i=;i<=n;i++)
{
scanf("%d%d",&w[i],&v[i]);
} dp[]=;//确定边界状态 for(i=;i<=n;i++)
{
for(j=m;j>=w[i];j--)//倒着进行遍。否则因为前面数据已经发生改变而影响后面的求解。
{
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
} printf("%d\n",dp[m]);
} return ;
}

POJ 3624 Charm Bracelet 简单01背包的更多相关文章

  1. POJ.3624 Charm Bracelet(DP 01背包)

    POJ.3624 Charm Bracelet(DP 01背包) 题意分析 裸01背包 代码总览 #include <iostream> #include <cstdio> # ...

  2. POJ 3624 Charm Bracelet (01背包)

    题目链接:http://poj.org/problem?id=3624 Bessie has gone to the mall's jewelry store and spies a charm br ...

  3. poj 3624 Charm Bracelet(01背包)

    Charm Bracelet Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 29295   Accepted: 13143 ...

  4. POJ 3624 Charm Bracelet(0-1背包模板)

    http://poj.org/problem?id=3624 题意:给出物品的重量和价值,在重量一定的情况下价值尽可能的大. 思路:经典0-1背包.直接套用模板. #include<iostre ...

  5. POJ 3624 Charm Bracelet(01背包模板)

    Charm Bracelet Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 45191   Accepted: 19318 ...

  6. POJ 3624 Charm Bracelet【01背包】

    解题思路:直接套公式就能做的01背包, for(i=1;i<=n;i++) { for(v=w[i];v<=m;v++) f[i,v]=max(f[i,v],f[i-1,v-w[i]]+d ...

  7. poj 3524 Charm Bracelet(01背包)

    Description Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd ...

  8. POJ 3624 Charm Bracelet(01背包裸题)

    Charm Bracelet Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 38909   Accepted: 16862 ...

  9. POJ 3624 Charm Bracelet(01背包)

    Charm Bracelet Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 34532   Accepted: 15301 ...

随机推荐

  1. RLE行程长度编码压缩算法

    在看emWIN的时候看到一个图片压缩的算法可以有效的对二值图(简单的2中颜色或者更多)进行压缩,压缩的效果可以节省空间而且不丢失信息! 特点 一种压缩过的位图文件格式,RLE压缩方案是一种极其成熟的压 ...

  2. android基础知识点复习之短信发送

    界面布局: activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/an ...

  3. Codeforce#354_B_Pyramid of Glasses(模拟)

    题目连接:http://codeforces.com/contest/676/problem/B 题意:给你一个N层的杯子堆成的金字塔,倒k个杯子的酒,问倒完后有多少个杯子的酒是满的 题解:由于数据不 ...

  4. set集合容器

      set集合容器几条特点 1.它不会重复插入相同键值的元素,而采取忽略处理 2.使用中序遍历算法,检索效率高于vector.deque.list容器,在插入元素时,会自动将元素按键值从小到大排列 3 ...

  5. jquery为多个元素添加事件

    html <c:forEach items="${modellist}" var="model" varStatus="status" ...

  6. 微信支付坑:url未注册

    微信支付,报:url未注册 页面URL未注册 支付授权目录 这里很重要我就是在这里折腾了很久.怎么设置呢,首先要看你支付的当前页面URL 比如是:http://www.taidupa.com/wxpa ...

  7. nginx libpcre.so.1: cannot open shared object file

    linux 64位安装nginx后启动出错报以下错误 1 2 3 [root@localhost nginx-1.3.0]# /usr/local/nginx/sbin/nginx error whi ...

  8. Docker 简介及安装

    Docker简介: 什么是Docker?将应用程序自动部署到容器 go语言开源引擎  Github地址:https://github.com/docker/docker 2013年初 dotCloud ...

  9. C#操作SQLite 报错 (Attempt to write a read-only database)

    解决办法:找到SQLite数据库所在的文件夹,单击右键,属性->安全,为Users用户组添加写入权限.

  10. CSS3的一些前缀

    为了兼容多个浏览器,css3通常前面加一大堆前缀 -webkit  /*为Chrome/Safari*/-moz  /*为Firefox*/-ms   /*为IE*/-o  /*为Opera*/ -w ...