博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva 1416 (SPFA) **月赛第E题的原题**
阅读量:6406 次
发布时间:2019-06-23

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

题意:无向图中有n个结点,m条边。需要求出所有结点之间最短路之和(若是两个结点间不能到达那么算成是x)例:n=2时 ans = d(1,1)+d(1,2)+d(2,1)+d(2,2)。然后从图中随机拿去一条边然后在让你计算所有结点之间最短路之和,问你可能得到的最大值是什么?

思路:这道题正解是要求出最短路树,但是给出一种更简单的做法就是spfa暴力。当时抱着试一试的思想写了一发,结果没想到就过了,然后速度在2s左右,还算可以。先算出所有点与点之间的最短路,然后在枚举删除边求最短路最大值就可。

代码如下:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #define MP(a, b) make_pair(a, b)11 #define PB(a) push_back(a)12 13 using namespace std;14 15 typedef long long ll;16 typedef pair
pii;17 18 const ll INF = 0x3f3f3f3f3f3f3fLL;19 const double eps = 1e-6;20 const int LEN = 110;21 22 vector
Map[LEN];23 int n, m, l, u[1010], v[1010], w[1010];24 ll dis[LEN][LEN], lans, ans;25 26 void SPFA(int s, int a, int b, int c){27 deque
q;28 int vis[LEN] = { 0};29 for(int i=1; i<=n; i++)dis[s][i] = INF;30 dis[s][s] = 0;31 q.push_back(s);32 vis[s] = 1;33 while(!q.empty()){34 int nv = q.front(); q.pop_front();35 for(int i=0; i
dis[s][nv]+y){39 dis[s][x] = dis[s][nv]+y;40 if(!vis[x]){41 vis[x] = 1;42 if(!q.empty()){43 if(dis[s][x]>dis[s][q.front()])q.push_back(x);44 else q.push_front(x);45 }else q.push_back(x);46 }47 }48 }49 vis[nv]=0;50 }51 }52 53 int main()54 {55 // freopen("in.txt", "r", stdin);56 57 while(scanf("%d%d%d", &n, &m, &l)!=EOF){58 for(int i=0; i<=n; i++)Map[i].clear();59 for(int i=0; i
ans)ans = loc;83 }84 printf("%lld %lld\n", lans, ans);85 }86 return 0;87 }
View Code

 

转载于:https://www.cnblogs.com/shu-xiaohao/p/3504964.html

你可能感兴趣的文章
解决Strict Standards: Only variables should be passed by reference
查看>>
解决JBoss只能通过localhost(127.0.0.1)而不能通过IP访问
查看>>
MS SQL处理双引号(DoubleQuote)函数
查看>>
[智能架构系列]什么是Buddy智能开发框架
查看>>
三十一、关于android camera setParameters出错
查看>>
【收藏】QCIF、 CIF、2CIF、DCIF、D1(4CIF)格式介绍
查看>>
hdu 3836 Equivalent Sets (tarjan缩点)
查看>>
一些iOS高效开源类库(转)
查看>>
JAVA编程心得-JAVA实现CRC-CCITT(XMODEM)算法
查看>>
C# DES加密
查看>>
浅谈Oracle分区表之范围分区
查看>>
IBM Tivoli NetView网管软件实战
查看>>
IPSec逻辑体系架构
查看>>
Exchange 2013部署系列之(六)配置邮件流和客户端访问
查看>>
List of Free Programming books
查看>>
思考Android架构(二):像Android框架,如何(How-to)吸引开发者来使用它呢?
查看>>
在html中,怎么获取当前页面body的高度,body是没有设置高度的,但是里面有内容...
查看>>
把 Array 转换成 Map
查看>>
MyBatis入门学习
查看>>
ASA防火墙IPSEC
查看>>