改一个错误真不容易,刚开始没有加上used数组,没有判断每个顶点是否已经加入到数组当中,结果同一个顶点被pop不止一次。

struct edge{int to,cost;};
typedef pair<int,int> P;//first集合X到i的最短距离,second点的编号
int ranchNumber,roadNumber;//顶点个数,道路个数
int mincost[];//每个顶点到集合x的最短距离
bool used[];//每个顶点是否已经加入到集合中
vector<edge> g[];
//顶点编号从0开始;
int heapPrime(){
priority_queue<P,vector<P>,greater<P> > que;
fill(mincost,mincost+,INF);
fill(used,used+,false);
mincost[]=;
int ans=;
que.push(P(mincost[],));
for(int j=;j<ranchNumber;j++){
P p=que.top();
while(used[p.second]==true){
que.pop();
p=que.top();
}
que.pop();
used[p.second]=true;
ans+=p.first;
int e=p.second;
for(int i=;i<g[e].size();i++){
edge ee=g[e][i];
if(mincost[ee.to]>ee.cost){
mincost[ee.to]=ee.cost;
que.push(P(mincost[ee.to],ee.to));
}
}
}
return ans;
}

最新文章

  1. Fastcgi介绍和php中fastcgi的应用
  2. 关于tomcat8在windows2008下高并发下问题的解决方案
  3. MongoDB Tool
  4. 关于android的分辨率
  5. jquery 获取 CheckBox 的状态
  6. C语言计算程序运行时间
  7. grunt 构建工具(build tool)初体验
  8. 1.Repeater控件
  9. QWidget中嵌入win32 window(使用QWindow和QWidget::createWindowContainer)
  10. write a macro to judge big endian or little endian
  11. SSE2 Intrinsics各函数介绍[转]
  12. html中返回上一页
  13. 网页上弹出pop窗口实例,(document).height()与$(window).height()的区别
  14. mysql数据库的安装及体系说明
  15. Linux0.11 中对地址的管理
  16. spring boot 2.0 集成 shiro 和 pac4j cas单点登录
  17. java提高(4)---数组增删 list删除 map删除
  18. 自学Python4.6-迭代器
  19. 【学习笔记 边分树】【uoj400】【CTSC2018】暴力写挂
  20. 排序算法&lt;No.3&gt;【桶排序】

热门文章

  1. Wordpress显示文章摘要
  2. Spring Mvc配置多视图 - tiles, velocity, freeMarker, jsp
  3. iOS链接库的冲突
  4. 对于eclipse building workspaces 慢的问题,解决方法
  5. shell编程学习笔记(六):cat命令的使用
  6. 理解ThreadPoolExecutor线程池的corePoolSize、maximumPoolSize和poolSize
  7. python pip 安装包报 编码问题
  8. redis 4.0.8 源码包安装集群
  9. Docker入门 - 002 Docker 的简单操作
  10. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用