当前位置: 首页 > news >正文

prim算法+优化 模版

#include<stdio.h>    //大概要这些头文件
#include<string.h>
#include<queue>
#include<vector>
#include<algorithm>
using namespace std;
typedef pair<int,int> pii;

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

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=0;
    memset(dist,-1,sizeof(dist));
    memset(vis,0,sizeof(vis));
    priority_queue<pii,vector<pii>,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]=0;
    vis[s]=1;
    while(!q.empty()){
        pii u=q.top();
        q.pop();
        if(vis[u.second])continue;
        vis[u.second]=1;
        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]==-1)){
                dist[j]=val[i];
                q.push(make_pair(dist[j],j));
            }
        }
    }
    printf("%d\n",ans);
}
prim算法优化

相关文章:

  • 【NOIP2013】day1
  • 机器学习,深度学习等概念区别【转】
  • [codevs] 1029 遍历问题
  • 【summary】mat 【万恶溢出!!】
  • A - dry
  • C - Wall
  • B - poset
  • git-ssh 配置和使用
  • 【并查集】构造完全图
  • FPS 集合 [Trie树]
  • [ZJOI 2013] bzoj3110 K大数查询 【树套树】
  • HTML特殊符号对照表
  • [RQNOJ 696] 【树形DP】
  • 汇编指令大全(有注释)
  • 【codevs 3044】 矩形面积求并 【线段树 扫描线 离散化】
  • 08.Android之View事件问题
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • download使用浅析
  • eclipse(luna)创建web工程
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Java小白进阶笔记(3)-初级面向对象
  • Spring-boot 启动时碰到的错误
  • yii2权限控制rbac之rule详细讲解
  • 产品三维模型在线预览
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 分布式熔断降级平台aegis
  • 高程读书笔记 第六章 面向对象程序设计
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 关于Java中分层中遇到的一些问题
  • 深入浅出Node.js
  • 微服务框架lagom
  • 微信小程序填坑清单
  • No resource identifier found for attribute,RxJava之zip操作符
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​什么是bug?bug的源头在哪里?
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (笔试题)合法字符串
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)setTimeout 和 setInterval 的区别
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET Core 中的路径问题
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • ?
  • ?php echo ?,?php echo Hello world!;?
  • @AutoConfigurationPackage的使用