博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu2145 邻接表spfa
阅读量:5805 次
发布时间:2019-06-18

本文共 2091 字,大约阅读时间需要 6 分钟。

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 struct Edge 7 { 8 int to; //边终点 9 int w; //边值10 int next;//结构体模拟链表11 }edge[50005];12 int m,n,target,outqueue[305],used[305],head[305],dis[305],start[305],speed[305];13 int spfa(int sta)14 {15 int temp,i;16 queue
q;17 while (!q.empty()) q.pop();18 used[sta]=1; dis[sta]=0; q.push(sta);19 while (!q.empty())20 {21 temp=q.front(); q.pop();22 outqueue[temp]++; used[temp]=0;23 if (outqueue[temp]>n) return -1;24 for (i=head[temp];i!=-1;i=edge[i].next)25 if (dis[edge[i].to]>dis[temp]+edge[i].w)26 {27 dis[edge[i].to]=dis[temp]+edge[i].w;28 if (used[edge[i].to]==0)29 {30 used[edge[i].to]=1;31 q.push(edge[i].to);32 }33 }34 }35 return 1;36 }37 int main()38 {39 int i,k,a,b,w,judge,maxdis,x;40 double min;41 while (~scanf("%d%d%d",&n,&m,&k))42 {43 memset(outqueue,0,sizeof(outqueue));//出队次数判断负权回路44 memset(used,0,sizeof(used));//用不用加入队列45 memset(head,-1,sizeof(head));//数组模拟链表46 for (i=1;i<=n;i++) dis[i]=10000000;47 for (i=1;i<=k;i++)48 {49 scanf("%d%d%d",&b,&a,&w);50 edge[i].to=b;51 edge[i].w=w;52 edge[i].next=head[a];53 head[a]=i;54 }55 scanf("%d",&target);56 for (i=1;i<=m;i++) scanf("%d",&start[i]);57 for (i=1;i<=m;i++) scanf("%d",&speed[i]);58 min=10000000.0; maxdis=0;59 judge=spfa(target);60 for (i=1;i<=m;i++)61 {62 x=dis[start[i]];63 if (x!=10000000&&(1.0*x/speed[i]
=maxdis)))64 { min=1.0*x/speed[i]; maxdis=x; judge=i; }65 }66 if (fabs(min-10000000.0)<1e-6) printf("No one\n");67 else printf("%d\n",judge);68 }69 }

转载于:https://www.cnblogs.com/xiao-xin/articles/3851583.html

你可能感兴趣的文章
[Vim] 搜索模式(正则表达式)
查看>>
#HTTP协议学习# (二)基本认证
查看>>
Android开发之线性布局详解(布局权重)
查看>>
WCF
查看>>
django 目录结构修改
查看>>
win8 关闭防火墙
查看>>
Android实例-录音与回放(播放MP3)(XE8+小米2)
查看>>
CSS——(2)与标准流盒模型
查看>>
MYSQL 基本SQL语句
查看>>
C#中的Marshal
查看>>
linux命令:ls
查看>>
Using RequireJS in AngularJS Applications
查看>>
hdu 2444(二分图最大匹配)
查看>>
shell编程笔记六:实现ll命令
查看>>
【SAP HANA】关于SAP HANA中带层次结构的计算视图Cacultation View创建、激活状况下在系统中生成对象的研究...
查看>>
[nodejs] nodejs开发个人博客(五)分配数据
查看>>
《Linux内核修炼之道》 之 高效学习Linux内核
查看>>
Java数据持久层框架 MyBatis之API学习九(SQL语句构建器详解)
查看>>
30分钟Git命令“从入门到放弃”
查看>>
nginx : TCP代理和负载均衡的stream模块
查看>>