zoukankan      html  css  js  c++  java
  • hihoweek 137(简单完全背包)

    题目链接:http://hihocoder.com/contest/hiho137/problem/1

    题意:中文题诶~

    思路:各层的成本计算不会有影响,所以我们只要把没一层的成本计算出来在求和就是答案啦。

    至于如何计算单独一层的成本我们可以考虑用完全背包处理:

    用dp[i]表示得到 i 的建设值最少需要花费多少成本,那么我们只需要逐步更新dp[i]即可。

    代码:

     1 #include <bits/stdc++.h>
     2 #define MAXN 110
     3 using namespace std;
     4 
     5 struct node{
     6     int a, b;
     7     double value;
     8 }gg[MAXN];
     9 int dp[MAXN*MAXN];
    10 
    11 int main(void){
    12     int q, n, m, k, t, ans;
    13     cin >> q;
    14     while(q--){
    15         bool ok=false;
    16         ans=0;
    17         cin >> n >> m >> k >> t;
    18         for(int i=0; i<m; i++){
    19             cin >> gg[i].a;
    20         }
    21         for(int i=0; i<m; i++){
    22             cin >> gg[i].b;
    23         }
    24         for(int i=1; i<=n; i++){
    25             memset(dp, 0x3f, sizeof(dp));
    26             dp[0]=0;
    27             bool flag=true;
    28             for(int j=0; j<m; j++){
    29                 gg[j].value=gg[j].b*1.0/gg[j].a;
    30                 if(gg[j].value>0){
    31                     flag=false;
    32                 }
    33             }
    34             if(flag){
    35                 cout << "No Answer" << endl;
    36                 ok=true;
    37                 break;
    38             }
    39             for(int j=1; j<=k; j++){
    40                 for(int l=0; l<m; l++){
    41                     if(j>gg[l].b){
    42                         dp[j]=min(dp[j], dp[j-gg[l].b]+gg[l].a);
    43                     }else{
    44                         dp[j]=min(dp[j], gg[l].a);
    45                     }
    46                 }
    47             }
    48             ans+=dp[k];
    49             for(int j=0; j<m; j++){
    50                 gg[j].b/=t;
    51             }
    52         }
    53         if(!ok){
    54             cout << ans << endl;
    55         }
    56     }
    57     return 0;
    58 }
  • 相关阅读:
    shell--练习--简易计算器
    shell--运算符
    shell--传递参数
    PHP数学函数的练习
    PDO对数据库的操作
    PHP实现手机短信的验证
    ThinkPHP框架 _ 学习16
    ThinkPHP框架 _ 学习15
    ThinkPHP框架 _ 学习14
    ThinkPHP框架 _ 学习13
  • 原文地址:https://www.cnblogs.com/geloutingyu/p/6390177.html
Copyright © 2011-2022 走看看