hihoweek 137(简单完全背包)
题目链接: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(简单完全背包)的更多相关文章
- 简单的背包变形HDU1203,HDU2955
今天一直在写背包,不过中间停了一段时间在写shell. 一直在做01背包.今天做了这两题很相似的背包 首先是HDU1203 Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要 ...
- POJ 3624 Charm Bracelet 简单01背包
题目大意:有n件珠宝,每个珠宝的魅力值为v,重量为w,求在重量不超过m的情况下能达到的最大魅力值. 题目思路:简单的01背包,由于二维数组会超内存所以应该压缩成一维数组. dp[i][j],表示选取i ...
- 【bzoj3687】简单题 背包dp+STL-bitset
题目描述 小呆开始研究集合论了,他提出了关于一个数集四个问题:1.子集的异或和的算术和.2.子集的异或和的异或和.3.子集的算术和的算术和.4.子集的算术和的异或和.目前为止,小呆已经解决了前三个问题 ...
- 2、Charm Bracelet( poj 3624)简单0-1背包
题意:有n件手镯,总重量不能超过M,每个手镯有一个体重W[i]和魅力V[i],问在不超过M的情况下能获得的魅力总和 思路:把M当背包总容量,用0-1背包写 代码: #include <iostr ...
- 【BZOJ3687】简单题 背包+bitset
[BZOJ3687]简单题 Description 小呆开始研究集合论了,他提出了关于一个数集四个问题:1.子集的异或和的算术和.2.子集的异或和的异或和.3.子集的算术和的算术和.4.子集的算术和的 ...
- 51 nod 1007 正整数分组 (简单01背包) && csu 1547: Rectangle
http://www.51nod.com/onlineJudge/questionCode.html#problemId=1007¬iceId=15020 求出n个数的和sum,然后用s ...
- 简单分组背包ACboy needs your help(hdu1712)
题意:有n个任务,完成期限是m天,a[i][j]代表第i个任务用j天完成可以获得的利益,问在这m天里面可以获得的最大利益,每次只能做一个任务,即多个任务不能同时做; 分析;用dp[i][j]代表在做第 ...
- HDU 2602 Bone Collector (简单01背包)
Bone Collector http://acm.hdu.edu.cn/showproblem.php?pid=2602 Problem Description Many years ago , i ...
- c4 L3-001 找零钱 (简单01背包-输出最小字典序解(用vector保存当前最优解))
#include <iostream> #include <algorithm> #include <vector> #include <cstdio> ...
随机推荐
- nodejs 版本dockerfile 文件制作,和常用命令
Dockerfile 如下 官方的node6.3的版本有点难下载,建议去网易蜂巢 https://c.163.com/hub pull hub.c.163.com/library/node:6.9 ...
- 【zabbix】zabbix3.0部署手册
1.环境准备 Centos 6.X 2.数据库准备 默认centos yum源中mysql包的版本号为5.1,为了能使zabbix 3.0能达到最好的性能效果,安装最新版的mysql数据库. yum ...
- 3D立方体旋转动画
在线演示 本地下载
- RStudio安装package时出现错误
cannot open URL 'http://www.stats.ox.ac.uk/pub/RWin/src/contrib/PACKAGES' 提示是打不开链接,你切换为国内的源试试Rstudio ...
- 最近采集写的一个超简单实用的HTML解析类
1. [文件] HtmlDom.php <?php$oldSetting = libxml_use_internal_errors( true ); libxml_clear_errors(); ...
- javascript(6)
javascript的冒泡排序 var arr=[5,0,-56,900,12]; //大的排序次数(arr.length-1) var flag=false; for(var i=0;i<=a ...
- CentOS Wifi Connection
方法一: http://wiki.centos.org/HowTos/Laptops/WpaSupplicant http://www.cnblogs.com/tanghuimin0713/p/343 ...
- 国际电话号码的区号mysql数据表
-- phpMyAdmin SQL Dump-- version 3.5.2-- http://www.phpmyadmin.net---- Host: localhost-- Generation ...
- smack
XMPP/Smack/Openfire javax.net.ssl.SSLException: Received fatal alert: internal_error 解决: 1.在链接openfi ...
- hdu-5858 Hard problem(数学)
题目链接: Hard problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...