链接:http://vjudge.net/problem/viewProblem.action?id=24941

描述:n个点,m条边的无向图,寻找从S到T的最短路。

思路:基础的单源点最短路 用Dijkstra或spfa都可以解决

这是我的实现:

  1 #include <iostream>
2 #include <cstdio>
3 #include <cstring>
4 #include <queue>
5 using namespace std;
6 #define MaxN 20020
7 #define MaxM 100020
8 struct node
9 {
10 int v,dist;
11 node *next;
12 };
13 node Edge[MaxM];
14 node *cnt=&Edge[0];
15 node *adj[MaxN];
16 int dist[MaxN];
17 int N,INF;
18 int n,m,S,T;
19 inline void Get_int(int &Ret)
20 {
21 char ch;
22 bool flag=false;
23 for(;ch=getchar(),ch<'0'||ch>'9';)
24 if(ch=='-')
25 flag=true;
26 for(Ret=ch-'0';ch=getchar(),ch>='0'&&ch<='9';Ret=Ret*10+ch-'0');
27 flag&&(Ret=-Ret);
28 }
29 inline void Clean()
30 {
31 memset(Edge,0,sizeof(Edge));
32 cnt=&Edge[0];
33 memset(adj,0,sizeof(adj));
34 }
35 inline void Addedge(int u,int v,int w)
36 {
37 node *p=++cnt;
38 p->v=v;
39 p->dist=w;
40 p->next=adj[u];
41 adj[u]=p;
42
43 p=++cnt;
44 p->v=u;
45 p->dist=w;
46 p->next=adj[v];
47 adj[v]=p;
48 }
49 inline void Read_Build()
50 {
51 Get_int(n);Get_int(m);Get_int(S);Get_int(T);
52 int i,u,v,w;
53 for(i=1;i<=m;++i)
54 {
55 Get_int(u);Get_int(v);Get_int(w);
56 Addedge(u,v,w);
57 }
58 }
59 struct cmp
60 {
61 bool operator()(node a,node b)
62 {
63 return a.dist>b.dist;
64 }
65 };
66 priority_queue <node, vector<node>, cmp> q;
67 void Dijkstra(int s)
68 {
69 node c,d;
70 node *p;
71 int i,j,k;
72 memset(dist,0x3f,sizeof(dist));
73 INF=dist[s];
74 dist[s]=0;
75 c.v=s;c.dist=0;
76 q.push(c);
77 while(!q.empty())
78 {
79 d=q.top();q.pop();
80 j=d.v;
81 for(p=adj[j];p!=NULL;p=p->next)
82 {
83 k=p->v;
84 if(dist[k]>dist[j]+p->dist)
85 {
86 dist[k]=dist[j]+p->dist;
87 d.v=k;d.dist=dist[k];
88 q.push(d);
89 }
90 }
91 }
92 }
93 inline void Print()
94 {
95 if(dist[T]==INF)
96 printf("unreachable\n");
97 else
98 printf("%d\n",dist[T]);
99 }
100 int main()
101 {
102 Get_int(N);
103 for(int i=1;i<=N;i++)
104 {
105 printf("Case #%d: ",i);
106 Clean();
107 Read_Build();
108 Dijkstra(S);
109 Print();
110 }
111 return 0;
112 }

[题解]UVA10986 Sending email的更多相关文章

  1. uva 10986 - Sending email(最短路Dijkstra)

    题目连接:10986 - Sending email 题目大意:给出n,m,s,t,n表示有n个点,m表示有m条边,然后给出m行数据表示m条边,每条边的数据有连接两点的序号以及该边的权值,问说从点s到 ...

  2. Sending e-mail with Spring MVC---reference

    reference from:http://www.codejava.net/frameworks/spring/sending-e-mail-with-spring-mvc Table of con ...

  3. Sending e-mail with Spring MVC--转载

    原文地址:http://www.codejava.net/frameworks/spring/sending-e-mail-with-spring-mvc Table of contents: 1.S ...

  4. Sending Email from mailx Command in Linux Using Gmail’s SMTP

    The mailx or mail command in Linux is still providing service for guys like me, especially when we n ...

  5. Spring – Sending E-Mail Via Gmail SMTP Server With MailSender--reference

    Spring comes with a useful ‘org.springframework.mail.javamail.JavaMailSenderImpl‘ class to simplify ...

  6. Sending e-mail

    E-mail functionality uses the Apache Commons Email library under the hood. You can use theplay.libs. ...

  7. Sending Email In .NET Core 2.0

    Consider the following written in .NET Core 2.0. SmtpClient client = ) { UseDefaultCredentials = tru ...

  8. UVA 10896 Sending Email

    这个题目真是伤透脑筋了,一直RE,连着改了好几个版本,又是spfa,又是单调队列dijkstra+单调队列,总是不过,后来发现M开小了,双向边应该开m的两倍,悲剧啊!!!以后不管怎样,数组一定要尽量开 ...

  9. UVa 10986 - Sending email

    题目大意:网络中有n个SMTP服务器,有m条电缆将它们相连,每条电缆传输信息需要一定的时间.现在给出信息的起点和终点,计算所需的最小时间. 有权图上的单源最短路问题(Single-Source Sho ...

随机推荐

  1. HDC2021技术分论坛:组件通信、硬件池化,这些创新技术你get了吗?

    作者:ligang 华为分布式硬件技术专家,sunbinxin 华为应用框架技术专家 HarmonyOS是一款全新的分布式操作系统,为开发者提供了元能力框架.事件通知.分布式硬件等分布式技术,使能开发 ...

  2. golang取地址操作采坑:for idx,item := range arr中的item是个独立对象

    先看代码: package main import "fmt" func main() { type s struct { A string B int32 } arr := [] ...

  3. Ajax_Post用法

    Ajax_Post用法 post方法的用法其实跟get是大同小异的 唯一不同的地方就是我们需要修改server.js的文件 只需要将get修改为post即可 那么我为了方便操作我这里选择的是直接在下面 ...

  4. Hbuilder将移动app或者web项目打包

    1. 直接将项目 npm run build 打包生成dist文件 2.将dist文件放到Hbuilderx或者Hbuilder里面,这个时候你会发现他是w的,需要将其转换为A 点击该dist项目右键 ...

  5. protobuf详解

    protobuf的基本类型和默认值,python中的小坑 标量数值类型 标量消息字段可以具有以下类型之一--该表显示了.原型文件,以及自动生成类中的对应类型: 默认值 python操作的坑 目录结构 ...

  6. IoC容器-Bean管理XML方式(自动装配)

    IoC操作Bean管理(XML自动装配) 1,什么是自动装配 (1)根据指定装配规则(属性名称或者属性类型),Spring自动将匹配的属性值进行注入 2,演示自动装配过程 (1)根据属性名称自动注入 ...

  7. a 标签一些特殊用法

    发邮件 <a href="mailto:youemail@mail.com?subject=邮件标题&body=邮件内容">告诉我们</a> 打电话 ...

  8. vue 项目npm run dev ip访问

    webpack npm run dev 不能通过ip访问 只能通过localhost访问 解决方法如下: 修改vue-cli: config/index.js 文件 把文件中 host 的值,改成 i ...

  9. 用shell脚本写出检测/tmp/size.log文件,如果存在显示它的内容,不存在则创建一个文件将创建时间写入

    1 #!/bin/bash 2 if [ -d "/tmp" ]; then 3 echo "/tmp is exists" 4 else 5 mkdir /t ...

  10. 请解释final finally finalize的区别

    final  关键字 ,可以定义不能被继承的父类.定义不能被重写的方法,常量 finally   关键字, 异常处理的统一出口 不管是否有异常都执行 finalize   方法(protected   ...