zoj(Conference Call)
来源:互联网 发布:编程猫 编辑:程序博客网 时间:2024/06/05 18:36
连接3点的最短路!!!关键是枚举找到连接3
点的中间一点!!!(可以推广到n点的最短路)
#include<iostream>
#include<string.h>
#include<stdio.h>
#define INF 100000000
using namespace std;
int n,m,I;
int mat[505][505];
int v[505];
int dx[505],dy[505],dz[505];
int t[10005];
void dijkstral(int u, int *d){
memset(v, 0, sizeof(v));
for(int i = 1; i <=m; i++) d[i] = (i==u ? 0 : INF);
for(int i = 1; i <= m; i++) {
int x, g = INF;
for(int y = 1; y <=m; y++) if(!v[y] && d[y]<=g) g= d[x=y];
v[x] = 1;
for(int y =1; y <=m; y++) if(d[y]>d[x]+mat[x][y]) d[y]=d[x]+mat[x][y];
}
}
int main(){
int k=1;
while(cin>>n>>m>>I){
for(int i=1;i<=n;i++) cin>>t[i];
int a,b,c;
for(int i = 1; i <=m; i++)
for(int j = 1; j <=m; j++)
mat[i][j] = INF;
for(int i=1;i<=I;i++){ cin>>a>>b>>c;mat[a][b]=mat[b][a]=c;}
int q;
cin>>q;
printf("Case #%d/n",k);
int x,y,z;
for(int i=1;i<=q;i++){
cin>>x>>y>>z;
int dxy,dxz,dyz;
dijkstral(t[x],dx);
/ y=d[t[y]];
/ z=d[t[z]];
dijkstral(t[y],dy);
/ z=d[t[z]];
dijkstral(t[z],dz);
/*int temp=dxy+dyz;
if(dxy+dxz<temp) temp=dxy+dxz;
if(dxz+dyz<temp) temp=dxz+dyz; */
int temp=INF;
for(int k=1;k<=m;k++) if(dx[k]+dy[k]+dz[k]<temp) temp=dx[k]+dy[k]+dz[k];
if(temp>=INF) printf("Line %d: Impossible to connect!/n",i);
else printf("Line %d: The minimum cost for this line is %d./n",i,temp);
}
k++;
}
return 0;}
- zoj(Conference Call)
- ZOJ 3396 Conference Call
- zoj 3396 Conference Call
- ZOJ 3396 Conference Call 最短路
- zju 3396 Conference Call
- ZOJ 3396 Conference Call 求经过特定3点的最小生成树
- zoj3396——Conference Call
- JRTPLIB@Conference(转)
- Conference
- conference
- Call for Papers International Conference for Smart Health (ICSH) 2014
- Call for Papers International Conference for Smart Health (ICSH) 2014
- Call for Papers International Conference for Smart Health (ICSH) 2014
- Computer Science Conference Ranking(zz)
- URAL 1203 Scientific Conference(贪心 || DP)
- 2016 Unicode Conference拾遗(一)
- 2016 Unicode Conference拾遗(二)
- 2016 Unicode Conference拾遗(三)
- 802.1X Radius 服务器搭建
- 数据库笔记
- loader问题
- MVC
- 创业必备条件:ITTA,《嘻游记》有记载
- zoj(Conference Call)
- vlc在Ubuntu下的自动安装和手动安装
- 承接各种软硬件项目
- spring security
- asp.net的优势
- Mysql,access,mssql server三种数据库获得新插入记录id的方法
- 安装好vm和linux后,还需要配置vmtools才能方便的和host机器交换数据等资源
- zoj(Strange Calendar III)
- 如何打开Framebuffer(Ubuntu9.10)