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 ...
随机推荐
- jsp el 自定义方法 tld 说明
使用 el 的过程中,需要使用到后端代码处理逻辑,这个时候我们就需要自定义 方法. 如我们后端代码定义如下: package com.rhythmk.common; public class FncH ...
- Android AES加密算法及其实现
找到了AES加密算法.(当然还有MD5,BASE64什么的http://snowolf.iteye.com/blog/379860这篇文章列举了很多,但是基本都是j2se平台的,android平台不一 ...
- JMeter 六:Listener
参考:http://jmeter.apache.org/usermanual/listeners.html Listener是用来展示Sampler结果的元件. 结果可以被展示在树.表格.图表或者简单 ...
- SSL Pining Mode 设置iOS SSL 连接安全
一:SSL Ping Mode 使用SSL来进行网络通信成为了很多mobile app的默认选择.最近一些文章发现:一些app并没有采用“额外的措施”来保证窃听不可以发生:这个“额外的步骤“就是SSL ...
- python版本管理--pyenv
python版本环境管理 下载依赖 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readli ...
- 2019pycharm破解大法
通过激活码激活Pycharm 1 先找到你的hosts文件: Windows电脑:c:\windows\system32\drivers\etc Linux/Mac电脑:/etc 2 编辑hosts文 ...
- python——关于Python Profilers性能分析器
1. 介绍性能分析器 profiler是一个程序,用来描述运行时的程序性能,并且从不同方面提供统计数据加以表述.Python中含有3个模块提供这样的功能,分别是cProfile, profile和ps ...
- cookie、localStorage和sessionStorage区别
三者区别见下表: 说明: cookie的处理过程为: 服务器向客户端发送cookie 浏览器将cookie保存 之后每次http请求浏览器都会将cookie发送给服务器端 对于 cookie,我们还需 ...
- nginx 配置一个文件下载服务
cat openvpn.conf server { listen ; server_name localhost; location / { root /home/openvpn/client_fil ...
- Unable to locate package错误
W: GPG error: http://nginx.org precise Release: The following signatures couldn't be verified becaus ...