链接: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. Abp vnext EFCore 实现动态上下文DbSet踩坑记

    背景 我们在用EFCore框架操作数据库的时候,我们会遇到在 xxDbContext 中要写大量的上下文 DbSet<>; 那我们表少还可以接受,表多的时候每张表都要写一个DbSet, 大 ...

  2. BUU XSS COURSE 1 & [CISCN2019 华东北赛区]Web2

    BUU XSS COURSE 1 & [CISCN2019 华东北赛区]Web2 XSS的题目没怎么做过,比赛基本上也没有(=_=),总结下今天做的两题 都是看赵总视频现学现做的,这里附上学习 ...

  3. Javascript中常用事件集合和事件使用方法

    Javascript中常用事件集合和事件使用方法 一.事件绑定 格式: 事件源 . on事件类型=事件处理函数 事件绑定三要素 1.事件源:和谁绑定 2.事件类型:什么事件 3.事件处理函数:触发了要 ...

  4. Solon Web 开发

    Solon Web 开发 一.开始 二.开发知识准备 三.打包与运行 四.请求上下文 五.数据访问.事务与缓存应用 六.过滤器.处理.拦截器 七.视图模板与Mvc注解 八.校验.及定制与扩展 九.跨域 ...

  5. 轻量级orm框架——gzero指南

    开发过web系统人一定对大量的curd不陌生,为了提高效率我们通常会使用一些orm框架做辅助,而不会直接操作数据库.但是现有的orm框架往往有两个通病(各种语言的都一样):1. API复杂:即使是有经 ...

  6. tep0.9.5支持自定义扩展request

    tep0.9.5更新了以下内容: 自定义request请求日志 Allure报告添加request描述 猴子补丁扩展request fixtures支持多层级目录 FastAPI替代Flask 升级t ...

  7. golang中锁

    一.什么场景下需要用到锁当程序中就一个线程的时候,是不需要加锁的,但是通常实际的代码不会只是单线程,有可能是多个线程同时访问公共资源,所以这个时候就需要用到锁了,那么关于锁的使用场景主要涉及到哪些呢? ...

  8. 如何使用iconfont的CDN

    如何使用iconfont的CDN iconfont作为阿里的图标库,在开发过成功用的已经是非常广泛了,但iconfont并不需要将图标下载后使用,而是可以直接用cdn引入使用,至于使用流程,请看下文. ...

  9. 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录

    目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 StdPeriphLi ...

  10. Python初学笔记之可变类型、不可变类型

    python中 可变类型: 列表 list 字典 dict 不可变类型: 数字型:int.float.complex.bool.long 字符型 str 元组 tuple id(i):通过id查看变量 ...