nyoj-115-城市平乱
来源:互联网 发布:女生铅笔袋淘宝 编辑:程序博客网 时间:2024/04/30 05:52
#include<stdio.h>
#define M 10000
int map[1002][1002];
int tp[102],n,m;
int DIJ(int q)
{
int used[1002]={0},dis[1002]={0};
int i,j,k,min;
for(i=1;i<=m;i++)
dis[i]=map[q][i];
for(i=1;i<=m;i++)
{
min=M;
for(j=1;j<=m;j++)
if(used[j]==0&&min>dis[j])
{
min=dis[j];
k=j;
}
used[k]=1;
for(j=1;j<=m;j++)
if(dis[j]>dis[k]+map[k][j])
dis[j]=dis[k]+map[k][j];
}
min=M;
for(i=0;i<n;i++)
if(min>dis[tp[i]])
min=dis[tp[i]];
return min;
}
int main()
{
int s,p,q;
scanf("%d",&s);
while(s--)
{
int i,j,k,a,b,c,min;
scanf("%d%d%d%d",&n,&m,&p,&q);
for(i=0;i<n;i++)
scanf("%d",&tp[i]);
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
map[i][j]=M;
for(i=0;i<p;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(map[a][b]>c)
map[a][b]=map[b][a]=c;
}
/*for(k=1;k<=m;k++)
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
if(map[i][j]>map[i][k]+map[k][j])
map[i][j]=map[i][k]+map[k][j];*/
printf("%d\n",DIJ(q));
}
return 0;
}
#define M 10000
int map[1002][1002];
int tp[102],n,m;
int DIJ(int q)
{
int used[1002]={0},dis[1002]={0};
int i,j,k,min;
for(i=1;i<=m;i++)
dis[i]=map[q][i];
for(i=1;i<=m;i++)
{
min=M;
for(j=1;j<=m;j++)
if(used[j]==0&&min>dis[j])
{
min=dis[j];
k=j;
}
used[k]=1;
for(j=1;j<=m;j++)
if(dis[j]>dis[k]+map[k][j])
dis[j]=dis[k]+map[k][j];
}
min=M;
for(i=0;i<n;i++)
if(min>dis[tp[i]])
min=dis[tp[i]];
return min;
}
int main()
{
int s,p,q;
scanf("%d",&s);
while(s--)
{
int i,j,k,a,b,c,min;
scanf("%d%d%d%d",&n,&m,&p,&q);
for(i=0;i<n;i++)
scanf("%d",&tp[i]);
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
map[i][j]=M;
for(i=0;i<p;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(map[a][b]>c)
map[a][b]=map[b][a]=c;
}
/*for(k=1;k<=m;k++)
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
if(map[i][j]>map[i][k]+map[k][j])
map[i][j]=map[i][k]+map[k][j];*/
printf("%d\n",DIJ(q));
}
return 0;
}
0 0
- nyoj 115 城市平乱
- nyoj-115-城市平乱
- nyoj 115 城市平乱
- NYOJ 115 城市平乱
- NYOJ 115 城市平乱
- NYOJ-115 城市平乱
- nyoj 115 城市平乱
- NYOJ 115 城市平乱
- nyoj 115 城市平乱
- nyoj 115 城市平乱
- nyoj 115 城市平乱
- NYOJ 115 城市平乱
- NYOJ 115 城市平乱
- NYOJ 115 城市平乱
- NYOJ-115 城市平乱
- NYOJ 115-城市平乱
- nyoj 115城市平乱
- NYOJ 115 城市平乱
- 而发热管他
- MongoDb部署机器修改域名可能导致move chunk失败
- C++资源之不完全导引 [上]
- AFNetworking速成教程 (2)
- 自然对齐/指定字节对齐---个人笔记
- nyoj-115-城市平乱
- 各回各家
- 2013C++第10周项目——循环结构程序设计【项目4:输出完数】
- 可空类型"int?" 解决: 【数据库里的int类型可以为null,而在c#里int类型不能为Nul】的问题
- C++资源之不完全导引 [下]
- maven常用命令
- 第一周作业-周末提高班
- 大富大贵
- 今天有点