1020 Problem T
来源:互联网 发布:万方数据库的免费入口 编辑:程序博客网 时间:2024/06/06 15:54
题意:购买手表,有N种硬币和总价值为M的手表。第i种硬币最多有c[i]个,每个价值是a[i]。用硬币购买手臂,总和不超过手表总价值,且价值总和最大
思路:多重背包,定义数组dp[],然后判断dp[i]==1是否成立,即能否组合成不超过M的任意一个数,如果可以计数加1.
感想:比较典型的多重背包,还是要掌握好多重背包的基础合理转化。
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
int i,j,k,n,m,a[101],c[101],dp[100001],num,count;
while(scanf("%d%d",&n,&m))
{
if(n==0&&m==0) break;
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
scanf("%d",&c[i]);
memset(dp,0,sizeof(dp));
dp[0]=1;
for(i=0;i<n;i++)
for(j=0;j<a[i];j++)
{
count=c[i];
for(k=j+a[i];k<=m;k+=a[i])
if(dp[k]==1) count=c[i];
else if(count>0&&dp[k-a[i]]==1)
{
dp[k]=1;
count--;
}
}
num=0;
for(i=1;i<=m;i++)
if(dp[i]==1)
num++;
printf("%d\n",num);
}
return 0;
}
- 1020 Problem T
- 练习三 Problem T
- 专题三 Problem T
- Problem Preparation T
- T-Sql Check IO Problem
- Can't set point Problem Solved!
- Don’t Be a Problem Solver
- ACM程序设计题目 Problem. T-20
- ACM程序设计》书中题目--problem t
- SQL Server 2005 T-SQL Recipes: A Problem-Solution Approach
- Dnn deploy on server problem, couldn't login correctly.
- dp专辑 T - MAX Average Problem [ 斜率优化]
- Problem: Jasper Server Excel Export Configuration Doesn't Work
- Chances Are,Your Biggest Problem Isn’t Technical
- About The Problem "scrollToItemAtIndexPath:atScrollPosition:animated:" doesn't work
- Problem I: 失恋的小T(后缀数组)
- ACdream 群赛11.10 Problem J: I can't describe the problem
- 1020 Prime Ring Problem
- Git Commit Message 格式规范
- socket通过http上传下载
- VB Cells.find函数参数解释
- 流水号
- iOS学习应用开发就业课_004:UIButton时间处理
- 1020 Problem T
- 详解语句srcImage(cv::Rect(xRoi,yRoi,widthRoi,heightRoi)).copyTo(roiImage);
- MySql 5.7安装(随机密码,修改默认密码)两个坑
- php 身份证号15和18位验证
- node命令
- 如何自学Android
- Gecco框架典型案例—闲逛APP
- Sublime Text2插件之 - JSON格式化
- 创建表空间、用户、授权