zoukankan      html  css  js  c++  java
  • POJ 3260 多重背包+完全背包

    链接:

    http://poj.org/problem?id=3260

    题意:

    你去买总价为t的东西,每种硬币你有k枚,老板有无数枚,求硬币交换数目最少的数目

    题解:

    你是多重背包,老板是完全背包,先预处理一下,然后计算取总和最小的就行了

    代码:

    31 int v[MAXN], c[MAXN];
    32 int dp1[MAXN], dp2[MAXN];
    33 int sum[MAXN];
    34 
    35 int main() {
    36     int n, t;
    37     cin >> n >> t;
    38     rep(i, 1, n + 1) cin >> v[i];
    39     rep(i, 1, n + 1) cin >> c[i];
    40     memset(dp1, 0x3f, sizeof(dp1));
    41     dp1[0] = 0;
    42     rep(i, 1, n + 1) {
    43         memset(sum, 0, sizeof(sum));
    44         rep(j, v[i], MAXN) if (dp1[j - v[i]] != INF && sum[j - v[i]] < c[i] && dp1[j] > dp1[j - v[i]] + 1)
    45             dp1[j] = dp1[j - v[i]] + 1, sum[j] = sum[j - v[i]] + 1;
    46     }
    47 
    48     memset(dp2, 0x3f, sizeof(dp2));
    49     dp2[0] = 0;
    50     rep(i, 1, n + 1) rep(j, v[i], MAXN) dp2[j] = min(dp2[j], dp2[j - v[i]] + 1);
    51     int ans = INF;
    52     rep(i, t, MAXN) ans = min(ans, dp1[i] + dp2[i - t]);
    53     if (ans == INF) ans = -1;
    54     cout << ans << endl;
    55     return 0;
    56 }
  • 相关阅读:
    Spring cloud父项目的建立
    Spring cloud简介
    ssm整合
    springboot-注解讲解
    springboot-helloworld实现
    Java线程池七个参数
    JVM性能调优
    SpringBoot的特性
    Spring与Spring Boot核心注解
    mybatis中#{} 和 ${}的区别
  • 原文地址:https://www.cnblogs.com/baocong/p/6783375.html
Copyright © 2011-2022 走看看