日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hdu-3790-最短路径问题(dijkstra算法)

發(fā)布時間:2024/10/12 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu-3790-最短路径问题(dijkstra算法) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=3790

?

這題cin會超時i

關于解決cin超時的問題?

在main函數(shù)開頭加上 ios::sync_with_stdio(false) 就行了,理論上這個辦法和用scanf差不多(學長教我的= =)不過我自己用的scanf是200多ms,用上面那句是500多ms orz

?

#include<iostream>
#include<cstdio>
#include<cstring>
#define INF 1000001
using namespace std;

int dis[1010],cost[1010][1010],visit[1010],map[1010][1010],cos[1010];

int main(void)
{
int n,m,a,b,d,p,i,j,s,t,min,z;
while(scanf("%d%d",&n,&m)==2&&(n+m))
{
memset(visit,0,sizeof(visit));
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
map[i][j]=INF;
cost[i][j]=INF;
}
}
while(m--)
{
scanf("%d%d%d%d",&a,&b,&d,&p);
//cin>>a>>b>>d>>p;
if(d<map[a][b])
{
map[a][b]=map[b][a]=d;
cost[a][b]=cost[b][a]=p;
}
else if(d==map[a][b]&&p<cost[a][b])
{
cost[a][b]=cost[b][a]=p;
}
}
scanf("%d%d",&s,&t);
//cin>>s>>t;
visit[s]=1;
for(i=1; i<=n; i++)
{
dis[i]=map[s][i];
cos[i]=cost[s][i];
}
for(i=1; i<=n; i++)
{
min=INF;
for(j=1; j<=n; j++)
{
if(!visit[j]&&min>dis[j])
{
z=j;
min=dis[j];
}
}
visit[z]=1;
for(j=1; j<=n; j++)
{
if(!visit[j]&&dis[j]>dis[z]+map[z][j])
{
dis[j]=dis[z]+map[z][j];
cos[j]=cos[z]+cost[z][j];
}
else if(!visit[j]&&dis[j]==dis[z]+map[z][j]&&cos[j]>cos[z]+cost[z][j])
{
cos[j]=cos[z]+cost[z][j];
}
}
}
printf("%d %d\n",dis[t],cos[t]);
}
return 0;
}

轉載于:https://www.cnblogs.com/liudehao/p/3906890.html

總結

以上是生活随笔為你收集整理的hdu-3790-最短路径问题(dijkstra算法)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。