整理的算法模板合集: ACM模板


AcWing 903. 昂贵的聘礼

【思路】

由于本题只有终点,没有起点,所以我们建一个超级源点S=0S = 0S=0 ,源点与各各点的权值就是他们的价格
如下图所示:

对于等级而言,因为不能低于酋长等级-m,所以我们枚举一下这个范围,然后只能更新等级在这个范围以内的边,然后跑一个最短路即可。

【分析】
比较简单的一道最短路,注意没有起点就自己建一个起点,超级源点在图论,网络流里非常常见。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<queue>/*有终点没有起点,所以我门要建一个超级源点,源点与各各点的权值就是他们的价格*/
using namespace std;
typedef pair<int,int> PII;const int N =  5007, M = 500007,INF = 0x3f3f3f3f;int n,m;
int dist[N];
bool vis[N];
int S;
int ver[M],nex[M],edge[M],head[N],tot = 1;
int level[N];void add(int x,int y,int z){ver[++tot] = y;edge[tot] = z;nex[tot] = head[x];head[x] = tot;
}int dijkstra(int s,int t){memset(dist,0x3f,sizeof dist);memset(vis,0,sizeof vis);priority_queue<PII,vector<PII>,greater<PII> >heap;heap.push({0,S});dist[S] = 0;while(heap.size()){int x = heap.top().second;heap.pop();if(vis[x])continue;vis[x] = true;for(int i = head[x];i;i = nex[i]){int y = ver[i],z = edge[i];if(level[y] < s || level[y] > t)continue;if(dist[y] > dist[x] + z){dist[y] = dist[x] + z;heap.push({dist[y],y});}}}return dist[1];
}int main(){cin>>m>>n;for(int i = 1;i <= n;++i){int P,K;scanf("%d%d%d",&P,&level[i],&K);add(S,i,P);while(K--){int id,val;scanf("%d%d",&id,&val);add(id,i,val);}}int ans = INF;for(int i = level[1] - m;i <= level[1];++i)ans = min(ans,dijkstra(i,i + m));cout<<ans<<endl;return 0;
}

解题报告:POJ - 1062 昂贵的聘礼(最短路、超级源点)相关推荐

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

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

  2. POJ 1062 昂贵的聘礼 (dijkstra)

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

  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 昂贵的聘礼

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

  8. POJ - 昂贵的聘礼(最短路)

    题目链接:http://poj.org/problem?id=1062 Time Limit: 1000MS Memory Limit: 10000K Description 年轻的探险家来到了一个印 ...

  9. poj解题报告——poj 1528 Perfection

    原题入口 poj 1528 Perfection 题目描述 Perfection Time Limit: 1000MS Memory Limit: 10000K Total Submissions: ...

最新文章

  1. CxImage类库的简介
  2. centos普通用户设置sudo权限
  3. 【Flutter】Flutter 混合开发 ( 混合开发中 Flutter 的 热重启 / 热加载 )
  4. 华为OJ系列之---表示数字
  5. BRCM5.02编译八: ERROR: you are missing a basic functioning perl installation
  6. 看懂mysql执行计划--官方文档
  7. Hit or Miss
  8. 使用自定义日志记录处理程序在JBoss AS 7中跟踪SQL语句
  9. 多线程基础(二)pthread的了解
  10. mysql存储过程中in条件多个值,使用临时表解决
  11. Linux操作系统使用基础03:Linux文件权限与目录配置
  12. eXtremeComponents 分页列表
  13. 像素,尺寸大小的转换
  14. 基于libevent的http客户端,并可以请求https
  15. Android 图片设置坐标点
  16. XTU 程序设计实践模拟考试题1
  17. 在html中调用QQ,MSN,旺旺,Skype,Email的方法
  18. 实时监控Mysql等数据库变化_进行数据同步_了解Maxwell_--MaxWell工作笔记001
  19. 华为Nova 4 HL1VCEM (VCE-L22/VCE-AL00)手机图纸电路原理图+主板高清图片
  20. Windows XP 缩略图不显示文件名

热门文章

  1. 每日一题(进制转换)
  2. Android Studio编写运行测试纯java代码可带main()函数
  3. 王坚十年前的坚持,才有了今天世界顶级大数据计算平台MaxCompute
  4. git 入门教程之本地和远程仓库的本质
  5. redis3.2集群搭建
  6. Java虚拟机性能监控工具草览
  7. if(window.event) e = window.event
  8. WP8调用NativeCode
  9. sklearn网格搜索
  10. 请与计算机管理员联系,电脑的限制被取消,请与管理员联系 解决方案