博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ--3268--Silver Cow Party【SPFA+邻接表】
阅读量:4974 次
发布时间:2019-06-12

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

题意:一些牛要去某一点參加聚会,然后再回到自己家,路是单向的,问花费时间最多的那头牛最少须要花费多长时间。

思路:从聚会地点返回,相当于是从某一点到其它各个点的最短路径。从牛的家中走到聚会地点,能够把路径反过来变成从聚会地点到各个点的最短路径,两个最短路径值加起来就是每头牛所花费的最小时间,找出最大的就可以。

我用了两个邻接表存路径,事实上这道题用邻接矩阵存更好做,矩阵横纵坐标翻转就把路径反转了,我用SPFA写想练练手,一直都不会手写SPFA,做几道题找找感觉。

AC竟然用时0MS。。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define PI acos(-1.0)#define MAXN 100100#define eps 1e-7#define INF 0x7FFFFFFF#define seed 131#define ll long long#define ull unsigned ll#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1struct node{ int u,v,next;}edge[MAXN],redge[MAXN];int head[MAXN],rhead[MAXN],dist[MAXN],vis[MAXN],ans[MAXN];int cnt,rcnt,n,m,x;void add_edge(int a,int b,int c){ edge[cnt].u = b; edge[cnt].v = c; edge[cnt].next = head[a]; head[a] = cnt++; redge[rcnt].u = a; redge[rcnt].v = c; redge[rcnt].next = rhead[b]; rhead[b] = rcnt++;}void spfa(int type){ int i,j; for(i=1;i<=n;i++){ dist[i] = INF; } dist[x] = 0; memset(vis,0,sizeof(vis)); vis[x] = 1; queue
q; q.push(x); while(!q.empty()){ int temp = q.front(); q.pop(); vis[temp] = 0; for(i=type?rhead[temp]:head[temp];i!=-1;i=type?redge[i].next:edge[i].next){ int lu = type?redge[i].v:edge[i].v; if(lu+dist[temp]
maxm) maxm = ans[i]; } printf("%d\n",maxm); return 0;}

转载于:https://www.cnblogs.com/hrhguanli/p/3964836.html

你可能感兴趣的文章
值得向iOS学习的15个APP设计技巧
查看>>
unittest数据驱动
查看>>
V-rep学习笔记:main script and child scripts
查看>>
C#自动注册第三方提供或是自己编写的DLL或ocx控件的方法
查看>>
移动互联网的新要求
查看>>
.net excel 导入 导出
查看>>
函数------迭代器、生成器、面向过程的编程思想
查看>>
《生活的哲学》
查看>>
bbb u-boot SPI 启动
查看>>
I am back-电商网站开发&jQuery
查看>>
Python 下载图片的几种方法
查看>>
《http权威指南》读书笔记5
查看>>
java解答:有17个人围成一圈(编号0~16),从第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止,问此人原来的位置是多少号?...
查看>>
Java多线程
查看>>
10亿美元融资腾讯跟头,Grail要用基因测序做癌症早期筛查
查看>>
Python GIL(Global Interpreter Lock)
查看>>
matlab 卷积公式与矩阵实现
查看>>
javascript 提取表单元素生成用于提交的对象(序列化 html 表单)
查看>>
学习Javascript闭包
查看>>
jmeter接口测试----5学生金币充值
查看>>