hdu 2066 最短路水题
题意:给出多个可选择的起始点和终点,求最短路
思路:执行起始点次的spfa即可
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define MAXN 1100
#define MAXM 5000
#define inf 2000000000
struct Edge
{
int to,next;
int time;
}edge[MAXM];
int ans,tot;
int pre[MAXM],head[MAXM],que[MAXM];
int vis[MAXM],dis[MAXM],tar[MAXN];
void addedge(int u,int v,int c)
{
edge[tot].to=v;
edge[tot].next=head[u];
edge[tot].time=c;
head[u]=tot++;
edge[tot].to=u;
edge[tot].next=head[v];
edge[tot].time=c;
head[v]=tot++;
}
void spfa(int s)
{
memset(vis,0,sizeof(vis));
for(int i=0;i<MAXN;i++)
dis[i]=inf;
dis[s]=0;
vis[s]=true;
int front,rear;
front=rear=0;
que[rear++]=s;
while(front!=rear)
{
int pre=que[front++];
vis[pre]=true;
int v;
for(int j=head[pre];j!=-1;j=edge[j].next)
{
v=edge[j].to;
if(dis[v]>dis[pre]+edge[j].time)
{
dis[v]=dis[pre]+edge[j].time;
if(tar[v]==1)
{
if(dis[v]<ans)
ans=dis[v];
}
if(!vis[v])
{
vis[v]=true;
que[rear++]=v;
}
}
}
vis[pre]=false;
}
}
void Init()
{
tot=0;
memset(head,-1,sizeof(head));
}
int si[MAXN];
int main()
{
int T,S,D;
while(scanf("%d%d%d",&T,&S,&D)!=EOF)
{
int a,b,c;
Init();
ans=inf;
for(int i=0;i<T;i++)
{
scanf("%d%d%d",&a,&b,&c);
addedge(a,b,c);
} memset(tar,0,sizeof(tar));
for(int i=0;i<S;i++)
{
scanf("%d",&si[i]);
}
for(int i=0;i<D;i++)
{
scanf("%d",&a);
tar[a]=1;
}
for(int i=0;i<S;i++)
{
spfa(si[i]);
}
printf("%d\n",ans);
}
return 0;
}
hdu 2066 最短路水题的更多相关文章
- hdu 2066 ( 最短路) Floyd & Dijkstra & Spfa
http://acm.hdu.edu.cn/showproblem.php?pid=2066 今天复习了一下最短路和最小生成树,发现居然闹了个大笑话-----我居然一直写的是Floyd,但我自己一直以 ...
- hdu 1106:排序(水题,字符串处理 + 排序)
排序 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...
- HDU 4950 Monster (水题)
Monster 题目链接: http://acm.hust.edu.cn/vjudge/contest/123554#problem/I Description Teacher Mai has a k ...
- HDU 4813 Hard Code 水题
Hard Code Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.act ...
- HDU 4593 H - Robot 水题
H - RobotTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.act ...
- HDOJ/HDU 2560 Buildings(嗯~水题)
Problem Description We divide the HZNU Campus into N*M grids. As you can see from the picture below, ...
- HDOJ(HDU) 1859 最小长方形(水题、、)
Problem Description 给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所有点框在内.长方形框的边分别平行于x和y坐标轴,点落在边上也算是被框在内 ...
- HDU - 1716 排列2 水题
排列2 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU—2021-发工资咯(水题,有点贪心的思想)
作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵 但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每 ...
随机推荐
- 移动端300ms点击事件的延迟
移动端click事件300ms延迟 移动端click事件300ms的延迟在目前看来,已经是老生常谈了. 以下内容,我会在参考资源的基础上谈谈我对移动端click事件300ms延迟的一些理解.本人愚昧, ...
- HAproxy部署配置
HAproxy部署配置 拓扑图 说明: haproxy服务器IP:172.16.253.200/16 (外网).192.168.29.140/24(内网) 博客服务器组IP:192.168.29.13 ...
- 自定义Git
在安装Git一节中,我们已经配置了user.name和user.email,实际上,Git还有很多可配置项. 比如,让Git显示颜色,会让命令输出看起来更醒目: $ git config --glob ...
- OC和JS的交互
1.引入类拓展UIWebView+TS_JavaScriptContext, 这个类拓展是能在JSCotext出现的时候就可以拿到. 因为一般情况下JSCotext在webViewDidFinishL ...
- JS高级编程读书笔记
导读:由于书的内容较多,内容划分也非常详尽,所以会分好几篇来写. 此页面仅作为跳转,权当个目录来用. 我会分块进行整理,大致如下: 第一章 简介 讲述javascript的历史,不打算整理,同学们大概 ...
- MATLAB批量读入图片
%% import pictures, and save into images{img_num} function [images, img_num, vertical_border] = impo ...
- CSS选择器 - 性能的探究及提升
[本博客为原创:http://www.cnblogs.com/HeavenBin/] 前言: 在工作中编写CSS样式表时随着选择器层数的增加总会看到选择器又丑又长的情况,利用工作之余研究从其命名再到 ...
- How to call C/C++ sytle function from C# solution?
1. Write native(unmanaged) code with C/C++, and make sure compile it as a DLL, the sample is as belo ...
- 原创:路由配置实践 两个局域网主机的互连 VM linux
又开始齐天大圣讲课的时间了 我相信网络是每个运维人员和开发人员必不可少要接触的 今天我们要讲的是在VM虚拟机中 我们三台虚拟机划分两个局域网 实现不同局域网的互联 也就是下面图中的AC通过B主机的 ...
- spring boot / cloud (一) 使用filter防止XSS
spring boot / cloud (一) 使用filter防止XSS 前言 XSS(跨站脚本攻击) 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading ...