prime算法邻接表写法
2024-08-23 12:32:34
#include <iostream> #include <queue> using namespace std; typedef struct { long v; long next; long cost; }Edge; typedef struct { long v; long cost; }node; bool operator <(const node &a,const node &b) { return a.cost>b.cost; } priority_queue<node> q; const long MAXN=10000; Edge e[MAXN]; long p[MAXN]; bool vist[MAXN]; long m,n; long from,to,cost; void init() { memset(p,-1,sizeof(p)); memset(vist,0,sizeof(vist)); while (!q.empty()) { q.pop(); } long i; long eid=0; for (i=0;i<n;++i) { scanf("%ld %ld %ld",&from,&to,&cost); e[eid].next=p[from]; e[eid].v=to; e[eid].cost=cost; p[from]=eid++; //以下适用于无向图 swap(from,to); e[eid].next=p[from]; e[eid].v=to; e[eid].cost=cost; p[from]=eid++; } } void print(long cost) { printf("%ld\n",cost); } void Prime() { long cost=0; init(); node t; t.v=from;//选择起点 t.cost=0; q.push(t); long tt=0; while (!q.empty()&&tt<m) { t=q.top(); q.pop(); if (vist[t.v]) { continue; } cost+=t.cost; ++tt; vist[t.v]=true; long j; for (j=p[t.v];j!=-1;j=e[j].next) { if (!vist[e[j].v]) { node temp; temp.v=e[j].v; temp.cost=e[j].cost; q.push(temp); } } } print(cost); } int main() { while (scanf("%ld %ld",&m,&n)!=EOF) { Prime(); } return 0; }
最新文章
- react经典进阶demo
- Arrays Multi
- NeHe OpenGL教程 第四课:旋转
- java 如何连接MySql数据库
- Redis总结(五)缓存雪崩和缓存穿透等问题
- JS匿名执行函数
- JavaScript HTML DOM 元素(节点)
- 分布式系统间通信之RPC简单Demo(七)
- Kaggle竞赛 —— 泰坦尼克号(Titanic)
- Java+大数据开发——Hadoop集群环境搭建(二)
- composer的安装方法 以及 ThinkPHP5安装
- wzyxidian Scanner 与 Readable 的read()方法
- net core体系-web应用程序-4net core2.0大白话带你入门-11asp.net core 2.0 cookie的使用
- (总结)CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL
- Unknown parameter datatype UNKNOW send from server.
- iOS开发笔记-图标和图片大小官方最新标准
- CVE-2018-18820 icecast 栈缓冲区越界写漏洞分析
- spring boot 使用拦截器 无法注入 配置值 、bean问题
- Fiddler 502问题
- 纯js的N级联动列表框 —— 基于jQuery
热门文章
- html5拨打电话及发短信
- ArgumentError:&#160;You&#160;need&#160;to&#160;supply&#160;at&#160;least&#160;one&#160;validatio
- [App Store Connect帮助]三、管理 App 和版本(2.7)输入 App 信息:添加 iMessage 信息版 App 的 App 信息
- 在3D中两条射线的相交性检测
- Codeforces 612D 前缀和处理区间问题
- what is success?
- html5+css3杂记
- 实现X*N
- RadioButtonList的兩種實現方式
- 在CentOS6,CentOS7安装 Let&#39;sEncrypt 免费SSL安全证书