http://www.lydsy.com/JudgeOnline/problem.php?id=2015

裸最短路(' '     ) 不过我最初以为是mst (' '    )

#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std; const int maxn = 100010;
const int maxe = 100010;
const int INF = 0x3f3f3f3f; int n, m, Q; struct edge {
int t, d;
edge* next;
}e[maxe * 2], *head[maxn]; int ne = 0; void addedge(int f, int t, int d) {
e[ne].t = t, e[ne].d = d, e[ne].next = head[f], head[f] = e + ne ++;
} struct pr {
int dis, pos;
pr(int a, int b) {
dis = a, pos = b;
}
}; bool operator < (const pr &a, const pr &b) {
return a.dis > b.dis;
} priority_queue <pr> q;
int dis[maxn]; void dijkstra(int s) {
memset(dis, INF, sizeof(dis));
dis[s] = 0;
for(int i = 1; i <= n; ++ i) q.push(pr(dis[i], i));
while(!q.empty()) {
pr x = q.top(); q.pop();
if(x.dis != dis[x.pos]) continue;
for(edge* p = head[x. pos]; p; p = p-> next) {
if(dis[p-> t] > dis[x. pos] + p-> d)
dis[p-> t] = dis[x. pos] + p-> d, q.push(pr(dis[p-> t], p-> t));
}
}
} int int_get() {
int x = 0; char c = (char)getchar(); bool f = 0;
while(!isdigit(c)) {
if(c == '-') f = 1;
c = (char)getchar();
}
while(isdigit(c)) {
x = x * 10 + (int)(c - '0');
c = (char)getchar();
}
if(f) x = -x;
return x;
} void read() {
n = int_get(), m = int_get(); Q = int_get();
for(int i = 1; i <= m; ++ i) {
int u, v, w;
u = int_get(), v = int_get(), w = int_get();
addedge(u, v, w); addedge(v, u, w);
}
} void sov() {
dijkstra(1) ;
while(Q --) {
int a, b;
a = int_get(), b = int_get();
printf("%d\n", dis[a] + dis[b]);
}
} int main() {
//freopen("test.in", "r", stdin);
read(), sov();
return 0;
}

最新文章

  1. css中左侧固定,右侧自适应
  2. RPC学习----Thrift快速入门和Java简单示例
  3. Struts2中重定向和请求转发配置
  4. Play Framework介绍:控制器层
  5. LogBack sl4j 通过MDC实现日志记录区分用户Session[以Spring mvc为例]
  6. Python爬取百度贴吧图片
  7. CSS模块化
  8. C# 读XML文件
  9. python的whl文件安装
  10. Reaver v1.4 用法整理 含高级参数说明 pin必备资料
  11. javascript 生成UUID
  12. jQuery中的trigger和triggerhandler区别
  13. SMT贴片机抛料的成因和回流焊横向温差问题
  14. 第13章 Swing程序设计----常用面板
  15. java~spring-ioc的使用
  16. 小甲鱼零基础python课后题 P22 021函数:lambda表达式
  17. 基于TensorFlow的深度学习系列教程 1——Hello World!
  18. DWM1000 蓝点无限 PCB样板
  19. ACM知识点总结
  20. ####### Scripts Summary #######

热门文章

  1. shell脚本学习(3)sed替换
  2. 【Linux】RedHat换源(转)
  3. Sumdiv
  4. AcWing 314. 低买 (线性DP)打卡
  5. HashMap的底层原理 cr:csdn:zhangshixi
  6. 做Data Mining,其实大部分时间都花在清洗数据
  7. SelfCert wcf中 生成x5.09证书的工具
  8. Linux 下 VIM 的操作
  9. 老牌激活工具– Microsoft Toolkit 2.4.3 + 详细图文教程【转】
  10. oracle 远程访问