poj1062 昂贵的聘礼
思路:
最短路。枚举路径中节点的“等级”,合法才可以进行松弛操作。
实现:
1 #include <iostream> 2 #include <cstdio> 3 #include <vector> 4 #include <functional> 5 #include <queue> 6 using namespace std; 7 8 typedef pair<int, int> PP; 9 const int MAXN = 105, INF = 0x3f3f3f3f; 10 11 int M, N, P[MAXN], L[MAXN], X, dist[MAXN]; 12 struct edge 13 { 14 int to, cost; 15 }; 16 vector<edge> G[MAXN]; 17 18 int Dijkstra(int s, int l, int r) 19 { 20 fill(dist + 1, dist + N + 1, INF); 21 dist[s] = 0; 22 priority_queue<PP, vector<PP>, greater<PP> > q; 23 q.push(PP(0, s)); 24 while (!q.empty()) 25 { 26 PP tmp = q.top(); q.pop(); 27 int id = tmp.second; 28 if (tmp.first > dist[id]) continue; 29 for (unsigned int i = 0; i < G[id].size(); i++) 30 { 31 edge & e = G[id][i]; 32 if (dist[e.to] >= dist[id] + e.cost && L[e.to] >= l && L[e.to] <= r) 33 { 34 dist[e.to] = dist[id] + e.cost; 35 q.push(PP(dist[e.to], e.to)); 36 } 37 } 38 } 39 int minn = INF; 40 for (int i = 1; i <= N; i++) 41 minn = min(minn, dist[i] + P[i]); 42 return minn; 43 } 44 45 int main() 46 { 47 cin >> M >> N; 48 for (int i = 1; i <= N; i++) 49 { 50 cin >> P[i] >> L[i] >> X; 51 int id, cost; 52 for (int j = 0; j < X; j++) 53 { 54 cin >> id >> cost; 55 G[i].push_back(edge{id, cost}); 56 } 57 } 58 int l = L[1], ans = INF; 59 for (int i = max(l - M, 0); i <= l; i++) 60 { 61 int p = i, q = i + M; 62 ans = min(ans, Dijkstra(1, p, q)); 63 } 64 cout << ans << endl; 65 return 0; 66 }
转载于:https://www.cnblogs.com/wangyiming/p/6993181.html
poj1062 昂贵的聘礼相关推荐
- POJ1062昂贵的聘礼(经典) 枚举区间 +【Dijkstra】
<题目链接> 昂贵的聘礼 Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用1000 ...
- poj1062昂贵的聘礼(Dijkstra**)
1 /* 2 题意: 物主有一个物品,价值为P,地位为L, 以及一系列的替代品Ti和该替代品所对应的"优惠"Vi 3 g[u][i] 表示的是u物品被i物品替换后的优惠价格!(u& ...
- POJ1062 昂贵的聘礼(最短路径)
题意: 中文题 要点: 等级比较难处理,注意题目中是间接接触也不行,所以假如酋长等级是5,差距为2,可以交换的等级有(3,4,5),(4,5,6),(5,6,7),也即是区间长度是m,交换中最大的与最 ...
- 解题报告:POJ - 1062 昂贵的聘礼(最短路、超级源点)
整理的算法模板合集: ACM模板 AcWing 903. 昂贵的聘礼 [思路] 由于本题只有终点,没有起点,所以我们建一个超级源点S=0S = 0S=0 ,源点与各各点的权值就是他们的价格 如下图所示 ...
- POJ 1062 昂贵的聘礼
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 30252 Accepted: 8465 Descriptio ...
- 昂贵的聘礼 poj 1062 dijsk
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 46539 Accepted: 13819 Descripti ...
- POJ 1062 昂贵的聘礼【经典的最短路问题】
原题链接:http://poj.org/problem?id=1062 我的链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=19651 ...
- 【题解】昂贵的聘礼 POJ - 1062 (最短路 经典)⭐⭐⭐⭐
昂贵的聘礼 POJ - 1062 你想娶酋长的女儿,但酋长要求你给一定数额金钱的聘礼.除了金钱外,酋长也允许你用部落里其他人的某物品加上一点钱作为聘礼.而其他人的物品也可以通过指定的另外一些人的某物品 ...
- 903. 昂贵的聘礼题解(建图挺有趣的)
昂贵的聘礼原题 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用 10000 个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低要求 ...
- POJ 1062 昂贵的聘礼 (dijkstra)
昂贵的聘礼 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低要求.酋长说 ...
最新文章
- 和12岁小同志搞创客开发:设计一款亮度可调节灯
- 3、绘制E-R图:数据库概要设计阶段
- 5-4 是否同一棵二叉搜索树 (25分)
- AOP+自定义注解 实现service统一的异常信息处理
- 计算机网络DNS域名配置,如何设置计算机的IP地址和DNS域名服务器
- 安全狗服云手机端上架各大手机应有市场
- 【上采样问题】将浮点运算转换成整数运算
- python注释中文_python注释不能识别中文
- 计算电磁学MoM学习启动篇
- [教程] ESP32+TFT+分光棱镜实现透明小电视
- 为什么你还没有买新能源汽车? 1
- 安卓手机如何让你的微信减肥不卡顿
- 影视广告创意与制作(三)
- 核心单词Word List 48
- ECCV2020 超分辨论文(附论文链接)
- docker开机启动失败_docker安装后启动不了 解决方法
- CocosCreator屏幕适配小结
- 软件质量保证与测试大作业,软件测试大作业.docx
- 教程: nodejs 做微信公众号开发,回复 xml 消息
- linux ubuntu安装GPU