java prim优先队列,最小生成树--prim+优先队列优化模板

prim+优先队列模板:

#include //大概要这些头文件

#include

#include

#include

#include

using namespace std;

typedef pair pii;

int head[],next[],point[],val[],size,dist[]; //前向星及dist数组

bool vis[];

void add (int a,int b, int v){ //加边及去重

int i;

for(i=head[a];~i;i=next[i]){

if(point[i]==b){

if(val[i]>v)val[i]=v;

return;

}

}

point[size]=b;

val[size]=v;

next[size]=head[a];

head[a]=size++;

}

struct cmp{ //重载小根堆

bool operator()(pii a,pii b){

return a.first>b.first;

}

};

void prim(int s){ //prim函数,传入图中一点

int i,ans=;

memset(dist,-,sizeof(dist));

memset(vis,,sizeof(vis));

priority_queue,cmp>q;

for (i=head[s];~i;i=next[i]){

dist[point[i]]=val[i];

q.push(make_pair(dist[point[i]],point[i]));

}

dist[s]=;

vis[s]=;

while(!q.empty()){

pii u=q.top();

q.pop();

if(vis[u.second])continue;

vis[u.second]=;

ans+=u.first;

for(i=head[u.second];~i;i=next[i]){

int j=point[i];

if(!vis[j]&&(dist[j]>val[i]||dist[j]==-)){

dist[j]=val[i];

q.push(make_pair(dist[j],j));

}

}

}

printf("%d\n",ans);

}

最短路--dijkstra+优先队列优化模板

不写普通模板了,还是需要优先队列优化的昂 #include //基本需要的头文件 #include #include

hdu1162(最小生成树 prim or kruscal模板)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1162 意义:给出一些点,用线问使所有点直接或间接连通,需要多长: 思路:裸最小生成树: 法1: pri ...

最小生成树prim和kruskal模板

prim: int cost[MAX_V][MAX_V]; //cost[u][v]表示边e=(u,v)的权值(不存在的情况下设为INF) int mincost[MAX_V]; //从集合X出发的每 ...

(模板)poj2387(dijkstra+优先队列优化模板题)

题目链接:https://vjudge.net/problem/POJ-2387 题意:给n个点(<=1000),m条边(<=2000),求结点n到结点1的最短路. 思路:dijkstra ...

Dijkstra &plus; 优先队列优化 模板

#include #include #include #include #inc ...

地铁 Dijkstra&lpar;优先队列优化&rpar; 湖南省第12届省赛

传送门:地铁 思路:拆点,最短路:拆点比较复杂,所以对边进行最短路,spfa会tle,所以改用Dijkstra(优先队列优化) 模板 /******************************** ...

最小生成树Prim

首先解释什么是最小生成树,最小生成树是指在一张图中找出一棵树,任意两点的距离已经是最短的了. 算法要点: 1.用book数组存放访问过的节点. 2.用dis数组保存对应下标的点到树的最近距离,这里要注 ...

hiho一下 第二十九周 最小生成树三&&num;183&semi;堆优化的Prim算法【14年寒假弄了好长时间没搞懂的prim优化:prim算法&plus;堆优化 】

题目1 : 最小生成树三·堆优化的Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 回到两个星期之前,在成功的使用Kruscal算法解决了问题之后,小Ho产生 ...

最短路算法模板合集(Dijkstar,Dijkstar(优先队列优化), 多源最短路Floyd)

再开始前我们先普及一下简单的图论知识 图的保存: 1.邻接矩阵. G[maxn][maxn]; 2.邻接表 邻接表我们有两种方式 (1)vector< Node > G[maxn]; 这个 ...

随机推荐

变态最大值--nyoj题目811

变态最大值 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 Yougth讲课的时候考察了一下求三个数最大值这个问题,没想到大家掌握的这么烂,幸好在他的帮助下大家算是解 ...

电梯调度算法---SCAN算法

请珍惜小编劳动成果,该文章为小编原创,转载请注明出处. 扫描(SCAN)调度算法:总是从磁臂当前位置开始,沿磁臂的移动方向去选择离当前磁臂最近的那个柱面的访问者.如果沿磁臂的方向无请求访问时,就改变磁 ...

痞子衡嵌入式:飞思卡尔i&period;MX RT系列MCU特性介绍(2)- RT1052DVL6性能实测

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的性能. 在前面的文章 i.MXRT微控制器概览 里,痞子衡给大家简介过恩智浦半导体在2017年推出的新 ...

sqlserverdatasouce控件如何让添加删除修改自动化

对于sqlserverdatasouce控件,添加插入修改和删除命令,可以自动删除修改更新数据,不需要编写一行代码,但是有时更新失败,原因在于选中了[开放式并发],这个选中,如果该表与其他的数据表关联 ...

部分视图 - partial

对于partia来说,可以理解为组件化的运用,即将对应的html/js/css进行封装,然后通过模板引擎直接进行调用 1.partial的注册 //可以直接写在app.js,也可以写在之前所说的hel ...

Git的基本使用(github)

关于Git的基本使用: 上传本地文件到github仓库中 首先要有自己的github账号,新建仓库: saiku-3.9 其次 本地安装好 git , 在本地任意目录下新建目录 saiku-3.9, ...

Scala的文件读写操作与正则表达式

目录 在本篇博客中你将会学习并了解常用的文件处理任务,例如读取文件的一行文本,本博客的要点包含: Source.fromFile(...).getLines.toArray 输出文件所有行 Sourc ...

webSocket协议与Socket的区别

WebSocket介绍与原理WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duplex).一开始的握手需要借助HTTP请求完成. ——百度 ...

Oracle 数据库备份和恢复配置

可能的失败及其解决方法 失败类型 我们坑你遇到的失败或错误分为两大类:物理和逻辑.物理错误一般是硬件错误或使用数据库的应用程序中的软件错误,而逻辑错误一般在终端用户级别(数据库用户和管理员). 按从轻 ...

华为笔试——C&plus;&plus;特定位数比较

题目:特定位数比较 题目介绍:输入两行数据,第一行为 m 个正整数,以空格隔开:第二行为正整数 n ,且 n<= m:要求对第一行的数字的后三位大小进行排序,输出排行 n 的数字,其中,若不满三 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值