Coins(HDU 2844):一个会超时的多重背包
2024-10-19 19:46:09
Coins HDU 2844
不能用最基础的多重背包模板:会超时的!!!
之后看了二进制优化了的多重背包。
就是把多重转变成01背包:
具体思路见:http://www.cnblogs.com/tt123/p/3280521.html
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
using namespace std;
int dp[],a1[],a[],b[];
int main()
{
int n,m,i,j,k,s,cout1;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==&&m==)
break;
for(i=;i<n;i++)
scanf("%d",&a[i]);
for(i=;i<n;i++)
scanf("%d",&b[i]);
cout1=;
for(i=;i<n;i++)
{
for(k=;k<=b[i];k<<=)
{
a1[cout1++]=k*a[i];
b[i]-=k;
}
if(b[i]>)
a1[cout1++]=b[i]*a[i];
}
memset(dp,,sizeof(dp));
for(i=;i<cout1;i++)
for(j=m;j>=a1[i];j--)
dp[j]=max(dp[j],dp[j-a1[i]]+a1[i]);
s=;
for(i=;i<=m;i++)
if(dp[i]==i)
s++;
printf("%d\n",s);
}
return ;
}
最新文章
- 代码生成工具——Entity Framework Power Tools
- Unique Paths II
- E:Package &#39;Vim&#39; has no installation candidate问题解决
- nenu contest3
- bzoj1832: [AHOI2008]聚会
- adb shell - device not found
- Android 短信模块分析(四) MMS之短信的发送与接收
- [Mark] KVM 虚拟化基本原理
- 此博客停止更新,请访问chenshuo.net
- cocos2dx 中文路径编译错误记录
- CRM客户关系管理系统(二)
- 动手实现一个vue中的模态对话框组件
- Android 手势检测实战 打造支持缩放平移的图片预览效果(下)
- Python3学习笔记 - day1
- Windows查看端口被什么进程占用的简单方法----菜鸟养成
- CM记录-Hadoop 分布式文件系统HDFS(登录、配置、监控)
- Problem E: 编写函数:Swap (I) (Append Code)
- linux c select函数使用求解释
- 【数据库】Eclipse连接MySQL数据库
- U33405 纽约
热门文章
- 2016-07-15: Window定时器使用
- 【MySQL】InnoDB: Error: checksum mismatch in data file 报错
- hadoop单机and集群模式安装
- socket笔记
- css3弹性盒子模型
- C++ dll 通用dll编写
- Android菜鸟成长记3-activity类
- Activity生命周期(一) 暨 帮助文档的使用
- HDU 4578 	Transformation (线段树区间多种更新)
- Servlet实现定时刷新到另外一个页面response.setHeader(";refresh";, ";3;url=/...";)