1020 Problem T

原创 2016年05月31日 10:56:36


题意:购买手表,有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;

}

HDU 5687 Problem C

Problem Description 度熊手上有一本神奇的字典,你可以在它里面做如下三个操作:   1、insert : 往神奇字典中插入一个单词   2、delete: 在神奇字...

HDU 5689 Problem E

Problem Description 小度熊是一个尽职尽责的程序熊,每天产出数千行的代码,代码当中存在很多判断条件。度熊想让自己代码中的这些条件不存在交集。为了简化问题,一个条件可以是一个『简...

HDU 1241 Prime Ring Problem

#include #include #include #include #define maxn 25 #define inf 0x3f3f3f3f using namespace std; int ...

HDU 5445 Food Problem

Problem Description Few days before a game of orienteering, Bell came to a mathematician to solve...

ZOJ Problem Set - 1038 T9

中等难度的字典树。 用到的是DFS+优先队列的方法。比较容易实现,但是效率不太高~  10ms。(cin,cout); 首先,插入,每个节点要其记录权值。然后DFS每个点,push入队列,对 #...
  • xxx_bug
  • xxx_bug
  • 2012年04月23日 22:28
  • 285

HDU 5402 Travelling Salesman Problem

Problem Description Teacher Mai is in a maze with n rows and m columns. There is a non-negati...

Problem D: [NOIP2008]传纸条 T3

[NOIP2008]传纸条 T3Description  小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对...

dp专辑 T - MAX Average Problem [ 斜率优化]

111

HDU 5615 Jam's math problem

Problem Description Jam has a math problem. He just learned factorization. He is trying to factor...

Problem A: [NOIP2005]青蛙过河 T2

[NOIP2005]青蛙过河 T2Description在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1020 Problem T
举报原因:
原因补充:

(最多只允许输入30个字)