ZOJ 3396 Conference Call(3点最小生成树)

题意:给出一组含m个点的无向图,再给出n个点,这n个点分别以一条边连接到这个无向图中的某个点。对于每个询问,求出3点连通的最小代价。有可能3个点是不能互通的。如图,最小代价就是红色的边的权之和。
思路:先对m个点的无向图进行求两两之间最短路径,用floyd。接下来对于每个询问,穷举m个点,求3个点分别到该点的距离之和,求最小即可。
//#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <cstring>
#define INB 0x7f7f7f7f
using namespace std;
const int N=;
int tsf[N]; //电话i接到的中转站
int gph[][]; //邻接矩阵表示图 int nexte[][]; //floyd用的辅助矩阵
int dis[][]; int cal(int a,int b, int c,int m)
{
int small=INB;
for(int k=; k<=m; k++)
{
if(dis[a][k]==INB||dis[b][k]==INB||dis[c][k]==INB)
continue;
if(dis[a][k]+dis[b][k]+dis[c][k]<small)
small=dis[a][k]+dis[b][k]+dis[c][k];
}
if(small>=INB) return ;
return small;
} void floyd(int m)
{
memset(nexte,0x80,sizeof(nexte)); //初始化为负
memset(dis,0x7f,sizeof(dis)); //初始化为无穷大 //初始化 next为可到达的
for(int i=; i<=m; i++)
{
for(int j=; j<=m; j++)
{
if(i==j) dis[i][i]=; //到自己
if(gph[i][j]>) //如果i到j有边
{
nexte[i][j]=j; //这是路径矩阵
dis[i][j]=gph[i][j]; //无向图
}
}
} for(int k=; k<=m; k++)
{
for(int i=; i<=m; i++)
{
for(int j=; j<=m; j++)
{ if(dis[i][k]>=INB || dis[k][j]>=INB) continue; //两段其中一段已经不可达
if(dis[i][j]>dis[i][k]+ dis[k][j]) //此路更短
{
dis[i][j]=dis[i][k]+ dis[k][j];
nexte[i][j]=nexte[i][k]; //修改path
}
}
}
}
} int main()
{
//freopen("e://input.txt", "r", stdin);
int n, m, l, j=;
int a, b, v, q;
while(cin>>n>>m>>l)
{
memset(gph,,sizeof(gph)); //初始化
for(int i=; i<n; i++) //输入电话所连接的中转站
scanf("%d",&tsf[i+]);
for(int i=; i<l; i++) //输入中转站图
{
scanf("%d%d%d",&a,&b,&v);
gph[a][b]=v;
gph[b][a]=v;
}
floyd(m); //佛洛依德开始
scanf("%d",&q);
printf("Case #%d\n",++j);
for(int i=; i<q; i++) //处理每个询问
{
scanf("%d%d%d",&a,&b,&v);
int ans=cal(tsf[a],tsf[b],tsf[v],m);
if(ans)
printf("Line %d: The minimum cost for this line is %d.\n",i+,ans);
else
printf("Line %d: Impossible to connect!\n",i+);
}
}
return ;
}
AC代码
ZOJ 3396 Conference Call(3点最小生成树)的更多相关文章
- ZOJ 1542 POJ 1861 Network 网络 最小生成树,求最长边,Kruskal算法
题目连接:problemId=542" target="_blank">ZOJ 1542 POJ 1861 Network 网络 Network Time Limi ...
- zoj 2966 Build The Electric System 最小生成树
Escape Time II Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/showP ...
- ZOJ 1586 QS Network Kruskal求最小生成树
QS Network Sunny Cup 2003 - Preliminary Round April 20th, 12:00 - 17:00 Problem E: QS Network In the ...
- ZOJ 1203 Swordfish 旗鱼 最小生成树,Kruskal算法
主题链接:problemId=203" target="_blank">ZOJ 1203 Swordfish 旗鱼 Swordfish Time Limit: 2 ...
- ZOJ - 3204 Connect them 最小生成树
Connect them ZOJ - 3204 You have n computers numbered from 1 to n and you want to connect them to ma ...
- ZOJ 1586 QS Network (最小生成树)
QS Network Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Submit Sta ...
- ZOJ 1584:Sunny Cup 2003 - Preliminary Round(最小生成树&&prim)
Sunny Cup 2003 - Preliminary Round April 20th, 12:00 - 17:00 Problem E: QS Network In the planet w-5 ...
- zoj 3204 最小生成树,输出字典序最小的解
注意排序即可 #include<cstdio> #include<iostream> #include<algorithm> #include<cstring ...
- zoj 3204 Connect them(最小生成树)
题意:裸最小生成树,主要是要按照字典序. 思路:模板 prim: #include<iostream> #include<stdio.h> #include<string ...
随机推荐
- Tech Stuff - Mobile Browser ID (User-Agent) Strings
Tech Stuff - Mobile Browser ID (User-Agent) Strings The non-mobile stuff is here (hint: you get jerk ...
- UPC 2224 Boring Counting (离线线段树,统计区间[l,r]之间大小在[A,B]中的数的个数)
题目链接:http://acm.upc.edu.cn/problem.php?id=2224 题意:给出n个数pi,和m个查询,每个查询给出l,r,a,b,让你求在区间l~r之间的pi的个数(A< ...
- POJ 1468
#include <iostream> #define MAXN 5005 using namespace std; struct node { int b_x; int b_y; int ...
- ExtJs之DHTML,DOM,EXTJS的事件绑定区别
<!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...
- ExtJs之Ext.core.Element
<!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...
- hdu 3094 A tree game 博弈论
思路: 叶子节点的SG值为0:中间节点的SG值为它的所有子节点的SG值加1 后的异或和. 详见贾志豪神牛的论文:组合游戏略述 ——浅谈SG游戏的若干拓展及变形 代码如下: #include<cs ...
- http://www.cnblogs.com/leiOOlei/p/5075402.html
http://www.cnblogs.com/leiOOlei/p/5075402.html
- gcc 优化选项 -O1 -O2 -O3 -Os 优先级
http://hi.baidu.com/xiaole10368/item/7cea9b1369cc240db88a1a5c 少优化->多优化: O0 -->> O1 -->&g ...
- Things about single men that women hate
Things about single men that women hate为何你俘获不了女神的心?If you listen in to a group of single women talki ...
- wamp中的phpmyadmin打开出现:#1045 - Access denied for user 'root'@'localhost' (using password: NO)
详细内容: MySQL said: #1045 - Access denied for user 'root'@'localhost' (using password: NO) phpMyAdmin ...