贪婪的商店

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述
小明星期天去一家商店买东西,看上了一个玩具,非常想买下来。但是这家商店有这样一个规定,如果要买一件物品A,可能必须要另一件物品B。而要买物品B,可能必须要买另一件物品C。直到买的这件物品不需要买其他物品为止。
经过顾客抗议,商店重新决定如果买一件物品,所需要买其他物品超过一件的话,可以买其中任一件就好。小明钱不多了,他想知道如果要买这件物品,最少要花多少钱。
输入
第一行包含一个整数T(T <= 100).表示测试数据组数。
每组数据第一行包含三个整数N,M,P(1 <= P <= N <= 1000,0 <= m <= 10000),
分别表示商店物品总个数,物品之间关系数量,小明想买物品的编号。
接下来的一行包含N个整数Vi,表示第i个物品的价钱。
接下来的M行每行包含两个整数a,b(1 <= a,b <= N),表示要买物品a就可能要买物品b。
输出
输出“Case #i: ans”(不含引号),i表示第i组数据,ans表示最少花的钱数。
样例输入
2
4 4 1
1 3 2 4
1 2
2 3
2 4
3 4
4 4 2
2 1 3 4
1 2
2 4
1 3
3 4
样例输出
Case #1: 8
Case #2: 5
简单树型DP!
AC码:
#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
#define MAX 1005
#define INF 9999999
vector<int> adj[MAX];
int dp[MAX],visit[MAX];
int weight[MAX];
int Min(int a,int b)
{return a>b?b:a;
}
void DFS(int u)
{if(visit[u])return;int len=adj[u].size(),v;if(len==0){dp[u]=weight[u];return;}for(int i=0;i<len;i++){v=adj[u][i];DFS(v);visit[v]=1;dp[u]=Min(dp[u],dp[v]+weight[u]);}
}
int main()
{int T,i,count=1;int n,m,p,a,b;scanf("%d",&T);while(T--){scanf("%d%d%d",&n,&m,&p);for(i=0;i<=n;i++)adj[i].clear();for(i=1;i<=n;i++)scanf("%d",&weight[i]);for(i=1;i<=m;i++){scanf("%d%d",&a,&b);adj[a].push_back(b);}memset(visit,0,sizeof(visit));for(i=0;i<=n;i++)dp[i]=INF;DFS(p);printf("Case #%d: %d\n",count++,dp[p]);}return 0;
}

NYOJ 679 贪婪的商店相关推荐

  1. 还是树形dp 也可以用最短路来写--NOJ679 贪婪的商店

    其实也是简单的dp,还可以把价格看成是权值用最短路来写,求出所要买的商品到各点的商品用最短距离: 这个和376其实是一样的思路就是用深搜的. 点击打开链接 #include <stdio.h&g ...

  2. NYOJ 679 The Weight of Tree 搜索+dp+邻接表

    The Weight of Tree 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 456 has a tree of n nodes, each node is as ...

  3. 00002 贪婪洞窟.003.5:地牢商店

     00002 贪婪洞窟.003.5:地牢商店 地牢商店在shopincave.plist中定义.格式如下: { 6001= { 1= { gems= 1; itemId= 10030; num= ...

  4. nyoj 47 江 河问题 【贪婪】

    经典的贪婪. 两种方案:一个:让我们来最快,第二快,在过去的第一,最快的回.然后最慢,最慢第二,在过去.次最快的回来a[0]+a[1]+a[1]+a[n-1] 二:最快的和最慢的过去,最快的回来,最快 ...

  5. 贪婪洞窟2服务器维护,《贪婪洞窟2》11月30日更新维护多久 贪婪洞窟2更新维护公告...

    原标题:<贪婪洞窟2>11月30日更新维护多久 贪婪洞窟2更新维护公告 斗玩网(d.chinaz.com)报道:<贪婪洞窟2> 11 月 30 日更新维护多久?一起来看看贪婪洞 ...

  6. 贪婪洞窟2服务器维护,贪婪洞窟211月30日更新维护公告 贪婪洞窟211月30日更新了那些内容...

    原标题:贪婪洞窟211月30日更新维护公告 贪婪洞窟211月30日更新了那些内容 斗玩网(d.chinaz.com)报道:<贪婪洞窟 2>11 月 30 日更新维护公告,<贪婪洞窟 ...

  7. 00002 贪婪洞窟.001

    00002贪婪洞窟.001 地牢类游戏我喜欢的有不少,比如<厕所穿越记>.<地下城冒险>等等,以及这次的研究对象<贪婪洞窟>. 从玩法上来说,<贪婪洞窟> ...

  8. 雷军:努力工作,克制贪婪,是世界上最笨也最高明的办法

    本文转载自:谷仓产品家   2017 年 11 月 2 日到 3 日,小米投资年会在成都召开.本文根据小米公司创始人.董事长,顺为资本创始合伙人雷军在会上的讲话整理,有删节. 演讲速记 创业并不光鲜, ...

  9. 00002 贪婪洞窟.003

     00002 贪婪洞窟.003 我玩贪婪洞窟的时间不多,对其的了解也不多,对其配置文件的研究也只是走马观花,因此,一些设想可能根本就无法实现.而且本人只有半瓶水的水平,又有点急性子,难免出错.遇到 ...

最新文章

  1. java list键值_java基础之对List,Map,Set等集合键值对的简单认识
  2. kettle分批处理大表数据_kettle-批量同步表数据
  3. 神秘的subsys_initcall【转】
  4. mysql long varchar2_long查询结果转换为varchar2类型
  5. 【Spring MVC】 maven pom.xml 错误: Cannot upgrade/downgrade to Dynamic Web Module 3.0 facet.
  6. PUSHAD和POPAD,以及PUSHA和POPA
  7. struct cdev结构体和cdev_init和cdev_add函数
  8. 直播丨 SQL大赛冠军怀晓明:深入解析Oracle存储过程中的性能瓶颈
  9. Linux 双网卡绑定方法
  10. 因式分解题目及过程_【数学.天问】为什么有些题目一看就会,一做就废?是不是你的手有自己的想法?...
  11. “你的深度学习框架包含15个漏洞”,360说 | 附论文
  12. 苹果自带的清理软件_苹果电脑清理软件哪个好|电脑|苹果电脑|mac|旧文件
  13. 解决办法:undefined reference to symbol 'shm_open@@GLIBC_2.2.5'
  14. Verilog初级教程(10)Verilog的always块
  15. dw网页制作教程百度云盘_Dreamweaver网页制作教程
  16. 台达PLC开发笔记(一):台达PLC连接介绍,分别使用485、网口与台达PLC建立连接
  17. 三维可视化技术在智慧电厂中的作用
  18. Unity HDRP Volume框架 — Lighting(光照)
  19. DFS DBS算法
  20. 表白墙源码/可用作博客论坛都是不错的

热门文章

  1. SparkSQL的3种Join实现
  2. nginx + mysql + php-fpm 环境
  3. C# winform开发:Graphics、pictureBox同时画多个矩形
  4. java抽象类和接口详解
  5. Unity插件之NGUI学习(8)—— Table和NGUI尺寸转换为世界坐标系尺寸
  6. Hibernate之深入Hibernate的映射文件
  7. 百度:土豪投机移动互联
  8. 织梦dedecms实现按照字母搜索的实现方法
  9. Management of your data
  10. enterprise architect (EA) 源码生成UML类图