#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define Maxn 1010
#define Maxm 1010*1010
#define INT_MAX 1<<30
int used[Maxn],head[Maxn],outqueue[Maxn],queue[Maxn],low[Maxn],temp=-999999999,len = 0;
struct EdgeNode
{
int to,w,next;
}edge[Maxm];
bool SPFA(int start)
{
int i,iq;
for(i = 0;i <= temp;i++)
{
low[i] = INT_MAX;
}
memset(used,0,sizeof(used));
memset(outqueue,0,sizeof(outqueue));
iq = 0;
queue[iq++] = start;
used[start] = 1;
low[start] = 0;
i = 0;
while(i!=iq)
{
int top = queue[i];
used[top] = 0;
outqueue[top]++;
if(outqueue[top] > temp) return false;
for(int k = head[top];k!=-1;k = edge[k].next)
{
if(low[edge[k].to] > low[top] + edge[k].w)
{
low[edge[k].to] = low[top] + edge[k].w;
}
if(!used[edge[k].to])
{
used[edge[k].to] = 1;
queue[iq++] = edge[k].to;
len++;
}
}
i++;
}
return true;
}
int main()
{
int T,S,D;
while(~scanf("%d%d%d",&T,&S,&D))
{
memset(head,-1,sizeof(head));
int i,j,p=0;
int a,b,w;
int x,y;
for(i = 0;i < T;i++)
{
scanf("%d%d%d",&a,&b,&w);
edge[p].to = b;
edge[p].w = w;
edge[p].next = head[a];
head[a] = p++;
edge[p].to = a;
edge[p].w = w;
edge[p].next = head[b];
head[b] = p++;
if(a > temp) temp = a;
if(b > temp) temp = b;
}
temp++;
for(i = 0;i < S;i++)
{
scanf("%d",&x);
edge[p].to = x;
edge[p].w = 0;
edge[p].next = head[0];
head[0] = p++;
edge[p].to = 0;
edge[p].w = 0;
edge[p].next = head[x];
head[x] = p++;
}
for(i = 0;i < D;i++)
{
scanf("%d",&y);
edge[p].to = y;
edge[p].w = 0;
edge[p].next = head[temp];
head[temp] = p++;
edge[p].to = temp;
edge[p].w = 0;
edge[p].next = head[y];
head[y] = p++;
}
// for(i = 0;i <= temp;i++)
// {
// for(j = head[i];j != -1;j = edge[j].next)
// {
// cout<<i<<" "<<edge[j].to<<" "<<edge[j].w<<endl;
// }
// }
SPFA(0);
printf("%d\n",low[temp]);
}
return 0;
}
建图的时候一定要建双向的因为有used这个数组进行已遍历的判断所以不用担心
相关推荐
Fluent动网格+滑移网格+重叠网格对比介绍(以震荡水翼flapping foil为例)
初学fluent笔记,本文主要包含: Flapping foil在fluent内的几种实现方式 在哪设置动网格、滑移、重叠网格 flapping的UDF 示例 写在前面:Fluent在预览网格运动/提交计算之前,注意保存一个cas版本。 -------------------------Flapping foil 网格几种组合实现方式:---------------------- 直接重叠网格,overset, 需要建立两个几何part,part要重合。水翼局部区域(component),背景网格(ba
hdu 2066 一个人的旅行-spfa
#include #include #include #include #include #define MAX 0x3f3f3f #define M 10000000 using namespace std; /*有些变量的意思你看看单词名就知道了,我基本没有缩写,可以有道词典弄一下*/ queue q; int head[2000]; int vis[2000]; in
(3万字深度解析)Kaggle《房价预测:高级回归技巧》详解复现攻略
在这篇教程式文章中,我们从零开始完成了 Kaggle《房价预测:高级回归技巧》比赛的复现工作,涵盖了数据预处理、特征工程、模型训练、调优、解释和融合的完整流程。深入理解数据:阅读数据描述,结合常识对每个特征作出合理处理(如缺失值填充’None’表示无此设施 、异常值剔除 等)。对目标和偏态特征进行对数变换,使分布更平滑,从而更好满足模型假设并提升准确度。特征工程:我们创造了总面积、总浴室等新特征,整合信息提高模型可学习性。
HDU2066 一个人的旅行(SPFA)
这个题相比较于一般的SPFA,还多加了一步草儿的家与图上的一些点相连,且距离为0。所以我们用链式前向星先来储存不连接图中点与 草儿的家 的边,然后再储存连接图中点与 草儿的家 的边。然后用SPFA来找出每个点到草儿的家的对短距离就OK了。(多亏题目给的点是1到1000,这样就可以把 草儿的家 设为0) 下面是AC代码(因为题目没有考虑负环,所以就没有进行负环的判断): #include...
STM32嵌入式开发实战:如何用miniLZO压缩算法节省70%存储空间(附完整工程)
本文详细介绍了如何在STM32嵌入式开发中使用miniLZO无损压缩算法实现高达70%的存储空间节省。通过对比分析不同轻量级算法,重点讲解miniLZO的内存优化配置、分块压缩策略和完整工程实现,帮助开发者有效解决嵌入式系统中的存储瓶颈问题。
esp32 python开发环境搭建_eclipse esp32开发环境搭建
安装方法基本是按照官网提供的方法来操作https://github.com/espressif/idf-eclipse-plugin#GettingStarted但是官网的方法安装之后还是不能编译成功的,第一次编译会出现一下问题问题1:Building in: E:\eclipse-workspace\helloworlk\buildcmake -G Ninja -DCMAKE_TOOLCHAIN...
HDU2066 最短路spfa 多起点 多终点 基础题
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 38706 Accepted Submission(s): 13155 Problem Description 虽...
【WRF工具】WRF 模型输出可视化工具 plotfmt
【WRF工具】WRF 模型输出可视化工具 plotfmt
hdu 2066 一个人的旅行 最短路spfa
题意:从S个点出发到D个点的最短路。 建一个超级源点与S个点相连,距离为0,建一个超级汇点与D个点相连,距离为0。然后计算最短路。 #include #include #include #include #include #define N 1100 #define INF 0x7ffffff using namespace std; int v[N],d[N],mp[N][N],n,s[
ZYNQ 使用AXI_BRAM实现PS与PL 数据交互数据交互
有时CPU需要与PL进行小批量的数据交换,可以通过Block RAM实现。通过Zynq 的GP Master 接口读写PL端的 BRAM,实现PS与PL的交互。加入自定义的 FPGA 程序,并利用 AXI4 总线进行配置,通知何时读写 BRAM。CPU通过 AXI BRAM Controller 读取 BRAM 数据,CPU 仅配置自定义的 PL BRAM Controller 的寄存器,不通过它读写数将BRAM与socket进行联合使用,将电脑的数据发到PS端,PS端放在PL端,PL端再发给PS端,P据。
戴尔PowerEdge R740服务器安装Debian系统后无法显示磁盘阵列
【代码】戴尔PowerEdge R740服务器安装Debian系统后无法显示磁盘阵列。
hdu2066spfa最短路+前向星 多源点多汇点
此题用纯暴力过了,但是我真没想到其他办法了!求大神指教 #include #include #include #include using namespace std; #define MAXN 1001 #define MAXM 10001 #define INF 0x3f3f3f3f struct Edge { int v, w, next; } ed
基于单光子探测的高重频多通道符合测距
TDC专栏之基于单光子探测的高重频多通道符合测距
spfa hdu 2066 一个人的旅行
/*c++ 62ms *g++ 78ms *spfa+暴力 */ #include #define MEM(a,x) memset(a , x , sizeof(a)) using namespace std; typedef int weight_t; const int SIZE_E = 1000000; const int SIZE_V = 1050; struct edge_t{
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
HDU2066(SPFA+前向星)
https://vjudge.net/problem/HDU-2066 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女…...
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
hdu-2066 一个人的旅行(SPFA做法)
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 24912 Accepted Submission(s): 8659 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然
霍尼韦尔SoftMaster使用说明
霍尼韦尔SoftMaster使用说明
HDU 2066 一个人的旅行(spfa)
假设 0 为虚拟起点,SPFA 求解即可 const int N=1e4+5; int n,m,t; int i,j,k; int head[N],all=0; int d[N]; //点 i 到起点的距离 int cnt[N]; //点 i 的入队次数 bool vis[N]; struct node { int to,next; int w; }G[N]; void add(int u,int v,int w) { ...
HDU 2066 一个人的旅行【最短路,多起点多终点,Dijkstra算法+spfa算法】
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 31420 Accepted Submission(s): 10804 Problem Description 虽然草儿是个路痴(就是在杭电待了一
hdu 2066 一个人的旅行 SPFA
链接:http://hdu.hustoj.com/showproblem.php?pid=2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 33412 Accepted Submission(s)
HDU 2066(SPFA)
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 50044 Accepted Submission(s): 16668 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会...
HDU 2066 一个人的旅行 (dijstra bellman-ford flyod SPFA)
一个人的旅行 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 29 Accepted Submission(s) : 2 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗...
hdu 2066 一个人的旅行 【spfa】
题目链接:戳这里 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 51305 Accepted Submission(s): 17078 Problem Description 虽然草儿是个路痴(就是...
HDU 2066
这是一道求最短路的问题,
hdu2066最短路径spfa算法对每个点分别判断0ms过
#include<iostream> #include<vector> #include<queue> using namespace std; const int MAXN=1005; const int MAX=999999999; struct edge { int from,to,cost; }; vector<...
HDU 2066 一个人的旅行(spfa,dijkstra)
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 36832 Accepted Submission(s): 12549 Problem Description 虽然草儿是个路痴(就是在杭电
HDU 2066 一个人的旅行(SPFA +Floyd-Warshall算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 24385 Accepted Submission(
2万+



被折叠的 条评论
为什么被折叠?



