hdu6007 Mr. Panda and Crystal 最短路+完全背包
/**
题目:hdu6007 Mr. Panda and Crystal
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6007
题意:魔法师有m能量,有n种宝石,有些宝石给定了用魔法变出它需要的能量,以及该宝石可以卖出的价钱。
有些宝石没有给出,给出k个方程,表示某些宝石可以通过另外一些宝石合成。
求魔法师最多可以卖出多少钱。 思路:
处理方程,最短路求出所有的宝石用能量变出的最小能量值。
然后完全背包。 */ #include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
#include<vector>
#include<cstring>
using namespace std;
typedef pair<int,int> P;
typedef long long LL;
const int N = ;
const int inf = 0x3f3f3f3f; int cost[N], price[N];
struct node
{
int goal;
vector<P> v;
}eq[N];
int dp[];
int main()
{
int cas = , T, n, m, k;
cin>>T;
while(T--)
{
scanf("%d%d%d",&m,&n,&k);
int flag;
for(int i = ; i <= n; i++){
scanf("%d",&flag);
if(flag==){
cost[i] = -;
scanf("%d",&price[i]);
}else
{
scanf("%d%d",&cost[i],&price[i]);
}
}
int x, y;
for(int i = ; i <= k; i++) eq[i].v.clear();
for(int i = ; i <= k; i++){
scanf("%d%d",&x,&y);
eq[i].goal = x;
int u, vv;
for(int j = ; j <= y; j++){
scanf("%d%d",&u,&vv);
eq[i].v.push_back(P(u,vv));
}
}
while()
{
int flag = ;
for(int i = ; i <= k; i++){
int sign = ;
int sum = ;
for(int j = ; j < (int)(eq[i].v.size()); j++){
P p = eq[i].v[j];
if(cost[p.first]==-){
sign = ; break;
}else
{
sum += cost[p.first]*p.second;
if(sum>m){///完全背包,最多m容量,所以超过m的能量花费,都不会被使用。这样避免溢出。
sum = m+; break;
}
}
}
if(sign){
if(cost[eq[i].goal]!=-){
if(cost[eq[i].goal]>sum){
cost[eq[i].goal] = sum;
flag = ;
}
}else
{
cost[eq[i].goal] = sum;
flag = ;
}
}
}
if(flag) break;
}
memset(dp, , sizeof dp);
for(int i = ; i <= n; i++){
if(cost[i]==-) continue;
for(int j = cost[i]; j <= m; j++){
dp[j] = max(dp[j],dp[j-cost[i]]+price[i]);
}
}
printf("Case #%d: %d\n",cas++,dp[m]);
}
return ;
}
hdu6007 Mr. Panda and Crystal 最短路+完全背包的更多相关文章
- Mr. Panda and Crystal(最短路+完全背包)
http://codeforces.com/gym/101206/attachments 题意: T组输入,每组给出m,n,k,m为能量总数,n为水晶种类数,k为合成方案数.有的水晶可以用能量制造,有 ...
- Mr. Panda and Crystal HDU - 6007 最短路+完全背包
题目:题目链接 思路:不难看出,合成每个宝石需要消耗一定的魔力值,每个宝石有一定的收益,所以只要我们知道每个宝石合成的最小花费,该题就可以转化为一个背包容量为初始魔力值的完全背包问题,每个宝石的最小花 ...
- HDU 6007 Mr. Panda and Crystal (背包+spfa)
题意:你生活在一个魔法大陆上,你有n 魔力, 这个大陆上有m 种魔法水晶,还有n 种合成水晶的方式,每种水晶价格告诉你,并且告诉你哪些水晶你能直接造出来,哪些你必须合成才能造出来,问你n魔力最多能卖多 ...
- 2018 China Collegiate Programming Contest Final (CCPC-Final 2018)-K - Mr. Panda and Kakin-中国剩余定理+同余定理
2018 China Collegiate Programming Contest Final (CCPC-Final 2018)-K - Mr. Panda and Kakin-中国剩余定理+同余定 ...
- H - Mr. Panda and Birthday Song Gym - 101775H (动态规划)
Mrs. Panda’s birthday is coming. Mr. Panda wants to compose a song as gift for her birthday. It is k ...
- HDU 3339 In Action【最短路+01背包】
题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=3339] In Action Time Limit: 2000/1000 MS (Java/Other ...
- HDU 3339 In Action【最短路+01背包模板/主要是建模看谁是容量、价值】
Since 1945, when the first nuclear bomb was exploded by the Manhattan Project team in the US, the n ...
- Gym101194J Mr.Panda and TubeMaster 二分图、费用流
传送门 看到这张图,是一个网格图,而且有回路限制,不难想到黑白染色. 一般来说我们对一张图黑白染色之后都是黑色点向白色点连边,但是这道题往这边想似乎就想不出建图方法了,因为"一个格子强制流满 ...
- Gym 101194C / UVALive 7899 - Mr. Panda and Strips - [set][2016 EC-Final Problem C]
题目链接: http://codeforces.com/gym/101194/attachments https://icpcarchive.ecs.baylor.edu/index.php?opti ...
随机推荐
- centos 5.4中mysql主从同步配置方法
安装环境•centos 5.4•mysql 5.1.xx 采用rpm直接安装•xtrabackup 1.2.22 采用rpm直接安装1. Master:/etc/my.cnf 代码如下 复制代码 [ ...
- ivy由于sha1码不正确导致找不到模块(jar)的错误
sbt设置jboss-interceptor-api-1.1作为依赖,但是找不到 [info] Resolving org.jboss.interceptor#jboss-interceptor-ap ...
- CentOS下配置HTTPS訪问主机并绑定訪问port号
系统环境: Linux: CentOS release 6.5 (Final) LAMP 步骤 1.lamp开启ssl # yum install openssl mod_ssl -y # 安装ope ...
- AFNetworking 文件上传Data,File图片,文件等上传
一:AFNetworking的文件上传: 主要几个以下类似 - (BOOL)appendPartWithFileURL:(NSURL *)fileURL name:(NSString *)name e ...
- ITFriend创业阶段的server环境搭建手冊
创业阶段,进一步实践了Linux环境搭建和维护,以下是一些经常使用软件的搭建步骤和參考资料,仅供自己和诸位參考. 我个人还是比較倾向"一站式Web开发"的.自己想做点事.须要太多的 ...
- 如何为iTunes Connect准备应用
原地址:http://blog.sina.com.cn/s/blog_947c4a9f0101dded.html 如果你已经成功注册了iOS开发者,那么现在就可以登陆iTunes Connect来管理 ...
- ant design pro 初识
发送请求 上次讲到在api.js中发送请求,模拟了假数据,这次讲一下调用真实接口进行请求并渲染页面. 先完整的过一遍请求吧 首先view层发送请求例如下面的代码: componentDidMount( ...
- HBuilder 打包 vue-cli 构建的 APP
1.在打包之前需要修改一个地方,那就是config->index.js文件,修改assetsPublicPath: '/'为assetsPublicPath: './',截图如下 上面文件改好后 ...
- Android Exception 11(baidumapsdk(15405): Authentication Error errorcode: 102 uid)
08-12 16:06:12.622: E/baidumapsdk(15405): Authentication Error errorcode: 102 uid: null appid -1 msg ...
- 从MVC和三层架构说到ssh整合开发-下
这章主要讲整合开发,直接从实战讲起,对与ssh的单方面了解,请继续等待我的兴许文章. 解说不到位的地方欢迎大家指正:联系方式rlovep.com 具体请看源码凝视: 全部代码下载(csdn):链接 G ...