题面

这道题就是标准的堆优化dijkstra;

注意堆优化的dijkstra在出队时判断vis,而不是在更新时判断vis

#include <bits/stdc++.h>
using namespace std;
int n,m,s;
struct littlestar{
int to;
int nxt;
int w;
}star[];
int head[],cnt;
void add(int u,int v,int w)
{
star[++cnt].to=v;
star[cnt].w=w;
star[cnt].nxt=head[u];
head[u]=cnt;
}
int dis[],vis[];
priority_queue<pair<int,int> > q;
void dijkstra(int u)
{
memset(dis,0x3f,sizeof(dis));
dis[u]=;
q.push(make_pair(,u));
while(q.size())
{
int x=q.top().second;
q.pop();
if(vis[x]) continue;
vis[x]=;
for(int i=head[x];i;i=star[i].nxt){
int v=star[i].to;
if(dis[v]>dis[x]+star[i].w){
dis[v]=dis[x]+star[i].w;
q.push(make_pair(-dis[v],v));
}
}
}
}
int main ()
{
scanf("%d%d%d",&n,&m,&s);
for(int i=;i<=m;i++){
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
add(u,v,w);
}
dijkstra(s);
for(int i=;i<=n;i++){
cout<<dis[i]<<" ";
}
}

最新文章

  1. 事件分发时候的onTouchEvent,onInterceptTouchEvent,dispatchTouchEvent调用顺序
  2. css sprite,css雪碧图生成工具V3.0更新
  3. android自动获取短信验证码
  4. JS~~~ 前端开发一些常用技巧 模块化结构 &amp;&amp;&amp;&amp;&amp; 命名空间处理 奇技淫巧!!!!!!
  5. 网站推广优化(SEO,网站关键字优化,怎么优化网站,如何优化网站关键字)
  6. 山东省第五届ACM省赛
  7. ASP .NET下的301重定向如何做
  8. Linux多线程之同步
  9. 【阿里云产品公测】在Laravel4框架中使用阿里云ACE的缓存服务
  10. 用GDB排查Python程序故障
  11. Ext.Net学习笔记13:Ext.Net GridPanel Sorter用法
  12. 获取GET/POST提交的数据,并处理中文问题
  13. ODI11G 在Linux上的安装配置
  14. poj1797(最短路小变形)
  15. Atom编辑器之加快React开发的插件汇总
  16. JMM内存管理
  17. Javascript日期类型的妙用
  18. python-基于UDP通信的套接字,socketserver模块的使用
  19. ElasticSearch集群介绍二
  20. puppet 用户和组资源管理

热门文章

  1. vue实现v-model父子组件间的双向通信
  2. IE8 CSS样式兼容性清单
  3. Java类路径的问题
  4. luogu 5311 [Ynoi2011]D1T3 动态点分治+树状数组
  5. CPU风扇转速异常
  6. HGOI20190815 题解
  7. latex参考文献中作者名字含有特殊字符怎么办
  8. Spring boot之使用thymeleaf
  9. 基于ElementUI,设置流体高度时,固定列与底部有间隙
  10. Hibernate动态条件查询(Criteria Query)