link:http://acm.hdu.edu.cn/showproblem.php?pid=1059

最简单的那种

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cctype>
#include <algorithm>
#include <queue>
#include <deque>
#include <queue>
#include <list>
#include <map>
#include <set>
#include <vector>
#include <utility>
#include <functional>
#include <fstream>
#include <iomanip>
#include <sstream>
#include <numeric>
#include <cassert>
#include <ctime>
#include <iterator>
const int INF = 0x3f3f3f3f;
const int dir[][] = {{-,},{,},{,-},{,},{-,-},{-,},{,-},{,}};
using namespace std;
int V,m[],c[],w[],f[];
void zeropack(int c, int w)
{
for (int v=V;v>=c;--v) f[v]=max(f[v],f[v-c]+w);
return;
}
void completepack(int c,int w)
{
for(int v=c;v<=V;++v) f[v]=max(f[v],f[v-c]+w);
return;
}
void multipack(int c,int w,int m)
{
if(c*m>=V)
{
completepack(c,w); return;
}
int k=;
while (k<m)
{
zeropack(k*c,k*w); m-=k; k*=;
}
zeropack(c*m,w*m);
return;
}
int main(void)
{
ios::sync_with_stdio(false);
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif // ONLINE_JUDGE
int t=; for(int i=;i<;++i) c[i]=w[i]=i+;
while ()
{
int sum=;
for(int i=;i<;++i) cin>>m[i], sum+=m[i]*(i+);
if(!sum) break;
// if(t!=1) cout<<endl;
cout<< "Collection #"<<t<<":\n";
t++;
if(sum&) {cout<< "Can't be divided."<<endl<<endl; continue;}
V=sum/;
memset(f,-INF,sizeof(f)); f[]=;
for(int i=;i<;++i) multipack(c[i],w[i],m[i]);
if(f[V]<) cout<< "Can't be divided."<<endl;
else cout<< "Can be divided."<<endl;
cout<<endl;
}
return ;
}

其实还是要理解一下这个思想……
不能单靠记忆

hdu1059 Dividing ——多重背包的更多相关文章

  1. poj1014 hdu1059 Dividing 多重背包

    有价值为1~6的宝物各num[i]个,求能否分成价值相等的两部分. #include <iostream> #include <cstring> #include <st ...

  2. hdu1059 dp(多重背包二进制优化)

    hdu1059 题意,现在有价值为1.2.3.4.5.6的石头若干块,块数已知,问能否将这些石头分成两堆,且两堆价值相等. 很显然,愚蠢的我一开始并想不到什么多重背包二进制优化```因为我连听都没有听 ...

  3. hdu 1059 Dividing(多重背包优化)

    Dividing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  4. Hdu 1059 Dividing & Zoj 1149 & poj 1014 Dividing(多重背包)

    多重背包模板- #include <stdio.h> #include <string.h> int a[7]; int f[100005]; int v, k; void Z ...

  5. hdu-1059(多重背包+二进制优化)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059 题意:输入6个数,每个数ni代表价值为i的物品有ni个.求如果这些物品能均分给两个人,每个人获得 ...

  6. hdu 1059 Dividing 多重背包

    点击打开链接链接 Dividing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  7. Dividing 多重背包 倍增DP

    Dividing 给出n个物品的价值和数量,问是否能够平分.

  8. POJ 1014 Dividing 多重背包

    Dividing Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 63980   Accepted: 16591 Descri ...

  9. POJ 1014 Dividing(多重背包, 倍增优化)

    Q: 倍增优化后, 还是有重复的元素, 怎么办 A: 假定重复的元素比较少, 不用考虑 Description Marsha and Bill own a collection of marbles. ...

随机推荐

  1. flash背景透明兼容ie火狐

    <embed src="1234.swf" quality="high" type="application/x-shockwave-flash ...

  2. No module ata_piix found的解决方法

    在一台as4u6的机器上升级内核到2.6.18时,最好make install的时候报了一个WARNING: No module ata_piix found for 2.6.18, 开始没有在意,重 ...

  3. MySQL数据类型(四)

    一.数据类型 二.整型类型 tinyInt: 1个字节:-128-127(有符号) 是否有符号,可以定义时,使用unsign标识,表示无符号的,不写表示有符号的 Create table studen ...

  4. zookeeper3.4.6的安装

    最近为了解决HDFS的单点故障的问题,采用了HA的方式是实现,并通过zookeeper来实现自动切换,既然需自动切换的话,那么必须要安装zookeeper,我选用的版本是3.4.6.下面详细介绍一下其 ...

  5. 学习js之类的使用

    <script language="javascript">function Person(){    }Person.prototype={    name:null ...

  6. stm32启动文件 startup_stm32f10x_hd.s

    ;* 文件名          : startup_stm32f10x_hd.s;* 库版本           : V3.5.0;* 说明:             此文件为STM32F10x高密度 ...

  7. catch的执行与try的匹配

    这里有一段代码: public class EmbededFinally { public static void main(String args[]) { int result; try { Sy ...

  8. fix eclipse gc overhead limit exceeded in mac

    fix eclipse gc overhead limit exceeded: 在mac上找不到eclipse.ini文件编辑内存限制,在eclipse安装目录右击eclipse程序,选“显示包内容” ...

  9. IIS6的session丢失问题

    解决办法:      a IIS6中相比IIS5增加了一个应用程序池,默认是使用DefaultAppPool.      b   先为站点建立一个应用程序池,打开IIS管理器,右键点击应用程序池-新建 ...

  10. UIImageView异步加载网络图片

    在iOS开发过程中,经常会遇到使用UIImageView展现来自网络的图片的情况,最简单的做法如下: 去下载https://github.com/rs/SDWebImage放进你的工程里,加入头文件# ...