昂贵的聘礼

年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:"嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。“探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来其他的东西,他可以降低价格。探险家于是又跑到其他地方,其他人也提出了类似的要求,或者直接用金币换,或者找到其他东西就可以降低价格。不过探险家没必要用多样东西去换一样东西,因为不会得到更低的价格。探险家现在很需要你的帮忙,让他用最少的金币娶到自己的心上人。另外他要告诉你的是,在这个部落里,等级观念十分森严。地位差距超过一定限制的两个人之间不会进行任何形式的直接接触,包括交易。他是一个外来人,所以可以不受这些限制。但是如果他和某个地位较低的人进行了交易,地位较高的的人不会再和他交易,他们认为这样等于是间接接触,反过来也一样。因此你需要在考虑所有的情况以后给他提供一个最好的方案。
为了方便起见,我们把所有的物品从1开始进行编号,酋长的允诺也看作一个物品,并且编号总是1。每个物品都有对应的价格P,主人的地位等级L,以及一系列的替代品Ti和该替代品所对应的"优惠"Vi。如果两人地位等级差距超过了M,就不能"间接交易”。你必须根据这些数据来计算出探险家最少需要多少金币才能娶到酋长的女儿。

Input

输入第一行是两个整数M,N(1 <= N <= 100),依次表示地位等级差距限制和物品的总数。接下来按照编号从小到大依次给出了N个物品的描述。每个物品的描述开头是三个非负整数P、L、X(X < N),依次表示该物品的价格、主人的地位等级和替代品总数。接下来X行每行包括两个整数T和V,分别表示替代品的编号和"优惠价格"。

Output

输出最少需要的金币数。

Sample Input


1 4
10000 3 2
2 8000
3 5000
1000 2 1
4 200
3000 2 1
4 200
50 2 0

Sample Output


5250

解题思路:

题意
有 n n n 个物品,每个物品都有自己的价格,但同时某些物品也可以由其他的(可能不止一个)替代品,这些替代品的价格比较“优惠”,问怎么样选取可以让你的花费最少来购买到物品 1 1 1
把它们看作是 n n n 个点,从其他点到他的优惠关系视做边,又因为最后总是要找到物品 1 1 1,所以可以看作是从起点 0 0 0,到将物品1作为终点的最小路劲。然后由于题目是说,这条路劲上不能有两个的等级差超过 m m m,所以我们可以枚举最小等级,将每个点视作最小等级。

AC代码:

const int N = 110;int Price[N], Edge[N][N], Level[N];
int vis[N], d[N];
int n, m, ans;void init()
{mem(Price, 0);mem(Level, 0);rep(i, 0, n){rep(j, 0, n){Edge[i][j] = INF;}}
}int dijkstra()
{rep(i, 1, n)d[i] = Price[i];rep(i, 1, n){int temp = inf, x;rep(j, 1, n){if (!vis[j] && d[j] <= temp)temp = d[x = j];}vis[x] = 1;rep(j, 1, n){if (d[x] + Edge[x][j] < d[j] && !vis[j])d[j] = d[x] + Edge[x][j];}}return d[1];
}int main()
{while (~sdd(m, n)){init();int i, j, k, x, y;rep(i, 1, n){sddd(Price[i], Level[i], k);rep(j, 0, k - 1){sdd(x, y);Edge[x][i] = y;}Edge[0][i] = Price[i];}ans = inf;rep(i, 1, n){int minLevel = Level[i];rep(j, 1, n){if (Level[j] - minLevel > m || minLevel > Level[j])vis[j] = 1;elsevis[j] = 0;}int now = dijkstra();ans = min(ans, now);}pd(ans);}return 0;
}

POJ 1062 昂贵的聘礼 (dijkstra)相关推荐

  1. POJ 1062 昂贵的聘礼【经典的最短路问题】

    原题链接:http://poj.org/problem?id=1062 我的链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=19651 ...

  2. 解题报告:POJ - 1062 昂贵的聘礼(最短路、超级源点)

    整理的算法模板合集: ACM模板 AcWing 903. 昂贵的聘礼 [思路] 由于本题只有终点,没有起点,所以我们建一个超级源点S=0S = 0S=0 ,源点与各各点的权值就是他们的价格 如下图所示 ...

  3. POJ 1062 昂贵的聘礼

    昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 30252   Accepted: 8465 Descriptio ...

  4. POJ #1062 昂贵的聘礼 有限制的最短路 枚举+dijkstra求最短路

    Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...

  5. POJ 1062.昂贵的聘礼

    Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...

  6. POJ - 1062 昂贵的聘礼

    题目链接 Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请 ...

  7. * poj 1062 昂贵的礼物 dijkstra 枚举区间

    思路参考大佬 https://blog.csdn.net/lyy289065406/article/details/6645852 每个物品看成一个节点,酋长的允诺也看作一个物品, 如果一个物品加上金 ...

  8. POJ 1062 昂贵的聘礼

    一.内容 某天超市搞活动,小明想买一个自己一直想买的电脑,平时需要7000,小明觉得太贵了.但活动当天,超市里的商品可以通过买其他商品获得优惠券.例如买一个键盘然后买电脑只需要5000,如果买一个鼠标 ...

  9. 昂贵的聘礼 Dijkstra法

    poj 1062 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 39437   Accepted: 11432 Descri ...

最新文章

  1. 对比测试LM358, LMV358双运放基本参数,测试之后发现是假货
  2. linux文本编辑器vi实验心得,linux中vi编辑器的练习心得
  3. OpenCV图像操作
  4. B18_NumPy副本和视图(视图或浅拷贝、副本或深拷贝、深浅拷贝)
  5. JavaScript 中的常用12种循环遍历(数组或对象)的方法
  6. FLV文件中VideoPacket的详解
  7. hdu 4302 STL multiset
  8. 打孔怎么定位_不粘锅是怎么制造出来的?看完工艺流程真的清楚了「精彩动图」...
  9. 云计算解码:技术架构和产业运营
  10. 不要错过!第十一届CDA考试Level Ⅰ优秀考生采访
  11. 文件管理之:打包、压缩
  12. 计算机网络是由网络硬件网络软件,计算机网络系统主要由网络硬件系统和网络软件系统组成。...
  13. 阿里技术专家楚衡:架构制图的工具与方法论
  14. [20150818]模拟wan网络延迟.txt
  15. 51单片机实现的双机通信设计仿真
  16. 笔记本电脑用久了卡顿解决方法
  17. USACO-Healthy Holsteins
  18. border-style之double实现三道杠
  19. three.js开发全景视频播放器的现实方法
  20. webpack的摇树、拆包、热更新、按需加载等难点

热门文章

  1. IOS使用OpenAL播放音频文件
  2. 利用Python爬取年终总结等文字,并保存为公文格式的word文档
  3. 论文|基于三部图网络结构的知识推荐算法
  4. 图片,70后,你懂的
  5. 大型计算机 内存,【技术贴】16GB超大内存该怎么玩儿?大内存应用方案解析
  6. linux基基基基本命令
  7. FreeRTOS-任务管理
  8. 【MATLAB】全局莫兰指数(含p值和z值)
  9. 什么是浪涌保护器防雷过压保护
  10. css height 100% 和 100vh 区别