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

题意:中文题诶~

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

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

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

代码:

 #include <bits/stdc++.h>
#define MAXN 110
using namespace std; struct node{
int a, b;
double value;
}gg[MAXN];
int dp[MAXN*MAXN]; int main(void){
int q, n, m, k, t, ans;
cin >> q;
while(q--){
bool ok=false;
ans=;
cin >> n >> m >> k >> t;
for(int i=; i<m; i++){
cin >> gg[i].a;
}
for(int i=; i<m; i++){
cin >> gg[i].b;
}
for(int i=; i<=n; i++){
memset(dp, 0x3f, sizeof(dp));
dp[]=;
bool flag=true;
for(int j=; j<m; j++){
gg[j].value=gg[j].b*1.0/gg[j].a;
if(gg[j].value>){
flag=false;
}
}
if(flag){
cout << "No Answer" << endl;
ok=true;
break;
}
for(int j=; j<=k; j++){
for(int l=; l<m; l++){
if(j>gg[l].b){
dp[j]=min(dp[j], dp[j-gg[l].b]+gg[l].a);
}else{
dp[j]=min(dp[j], gg[l].a);
}
}
}
ans+=dp[k];
for(int j=; j<m; j++){
gg[j].b/=t;
}
}
if(!ok){
cout << ans << endl;
}
}
return ;
}

hihoweek 137(简单完全背包)的更多相关文章

  1. 简单的背包变形HDU1203,HDU2955

    今天一直在写背包,不过中间停了一段时间在写shell. 一直在做01背包.今天做了这两题很相似的背包 首先是HDU1203 Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要 ...

  2. POJ 3624 Charm Bracelet 简单01背包

    题目大意:有n件珠宝,每个珠宝的魅力值为v,重量为w,求在重量不超过m的情况下能达到的最大魅力值. 题目思路:简单的01背包,由于二维数组会超内存所以应该压缩成一维数组. dp[i][j],表示选取i ...

  3. 【bzoj3687】简单题 背包dp+STL-bitset

    题目描述 小呆开始研究集合论了,他提出了关于一个数集四个问题:1.子集的异或和的算术和.2.子集的异或和的异或和.3.子集的算术和的算术和.4.子集的算术和的异或和.目前为止,小呆已经解决了前三个问题 ...

  4. 2、Charm Bracelet( poj 3624)简单0-1背包

    题意:有n件手镯,总重量不能超过M,每个手镯有一个体重W[i]和魅力V[i],问在不超过M的情况下能获得的魅力总和 思路:把M当背包总容量,用0-1背包写 代码: #include <iostr ...

  5. 【BZOJ3687】简单题 背包+bitset

    [BZOJ3687]简单题 Description 小呆开始研究集合论了,他提出了关于一个数集四个问题:1.子集的异或和的算术和.2.子集的异或和的异或和.3.子集的算术和的算术和.4.子集的算术和的 ...

  6. 51 nod 1007 正整数分组 (简单01背包) && csu 1547: Rectangle

    http://www.51nod.com/onlineJudge/questionCode.html#problemId=1007&noticeId=15020 求出n个数的和sum,然后用s ...

  7. 简单分组背包ACboy needs your help(hdu1712)

    题意:有n个任务,完成期限是m天,a[i][j]代表第i个任务用j天完成可以获得的利益,问在这m天里面可以获得的最大利益,每次只能做一个任务,即多个任务不能同时做; 分析;用dp[i][j]代表在做第 ...

  8. HDU 2602 Bone Collector (简单01背包)

    Bone Collector http://acm.hdu.edu.cn/showproblem.php?pid=2602 Problem Description Many years ago , i ...

  9. c4 L3-001 找零钱 (简单01背包-输出最小字典序解(用vector保存当前最优解))

    #include <iostream> #include <algorithm> #include <vector> #include <cstdio> ...

随机推荐

  1. linux rsyncserver文件同步

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zqtsx/article/details/24254651 [root@zqtsx]# rpm -q ...

  2. 【足迹C++primer】35、特定容器算法

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/cutter_point/article/details/33732681 特定容器算法 lst.me ...

  3. Scipy.sparse矩阵的存储,读取和转化为稠密矩阵

    import numpy as np import scipy.sparse as sp m = sp.lil_matrix((7329,7329)) np.save(path,m) #用numpy的 ...

  4. GIT笔记:将项目发布到码云

    GIT笔记:将项目发布到码云 发布步骤 1.码云创建项目 记录下项目的远程地址: https://gitee.com/mrsaber/ms_supplyAndSale.git 2.在本地创建GIT仓库 ...

  5. 解决webpack不能匹配post请求的问题

    解决webpack不能匹配post请求的问题 webpack的dev-server只能匹配get请求,在本地做本地数据的时候会很不方便. 可以使用如下两种办法解决: 1.在webpack.config ...

  6. Perl 日期时间函数(date time)

    use Time::HiRes qw(time);use POSIX qw(strftime); my $t = time;my $date = strftime "%Y%m%d %H:%M ...

  7. Apache CGI 配置

    在/etc/apache2/apache2.conf末尾添加 ServerName lacalhost:80 然后启动CGI模块: sudo a2enmod cgi 3.重启Apache: syste ...

  8. BZOJ 1579 [Usaco2009 Feb]Revamping Trails 道路升级:dijkstra 分层图【将k条边改为0】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1579 题意: 给你一个无向图,n个点,m条边,每条边有边权w[i]. 你可以将其中的k(k ...

  9. array_1.array_map

    note: 为数组的每个元素应用回调函数 <?php $arr = [1, 2, 3]; $arr1 = array_map( function ($value) { return $value ...

  10. c ++ auto 的使用

    该文转自:https://www.cnblogs.com/KunLunSu/p/7861330.html C++98 auto 早在C++98标准中就存在了auto关键字,那时的auto用于声明变量为 ...