HDOJ 3790
dijstra最短路径算法
:
| 9885560 | 2013-12-23 23:54:56 | Accepted | 3790 | 203MS | 8112K | 1343 B | C++ | 泽泽 |
#include<cstdio>
#include<cstring>
#define inf 0xffffff
int g[][];
int v[][];
void dijstra(int n,int a)
{
int used[],i,j,k,min,dis[],lowcost[];
memset(used,,sizeof(used));
for(i=;i<=n;i++)
{
dis[i]=g[i][a];
lowcost[i]=v[i][a];
}
used[a]=;
for(i=;i<=n;i++)
{
j=a;min=inf;
for(k=;k<=n;k++)
{
if(dis[k]<min&&!used[k])
min=dis[k],
j=k;
}
used[j]=;
for(k=;k<=n;k++)
{
if(g[k][j]+dis[j]<dis[k]&&!used[k])
{
g[a][k]=g[k][a]=dis[k]=g[k][j]+dis[j];
lowcost[k]=v[a][k]=v[k][a]=v[k][j]+v[j][a];
}
if(g[k][j]+dis[j]==dis[k]&&!used[k])
{
if(v[k][j]+lowcost[j]<lowcost[k])
{
lowcost[k]=v[k][a]=v[k][j]+v[j][a];
} }
}
} }
int main()
{
int n,m,i,j,a,b,s,vi;
while(scanf("%d %d",&n,&m)!=EOF)
{
if(!n&&!m)break;
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
{
g[i][j]=inf,v[i][j]=inf;
}
g[i][i]=;
}
for(i=;i<=m;i++)
{
scanf("%d %d %d %d",&a,&b,&s,&vi);
if(s<g[a][b]) {
g[a][b]=g[b][a]=s;
v[a][b]=v[b][a]=vi;
}
if(s==g[a][b]&&vi<v[a][b])
{
v[a][b]=v[b][a]=vi;
}
}
int start,end;
scanf("%d %d",&start,&end);
dijstra(n,start);
printf("%d %d\n",g[start][end],v[start][end]);
}
return ;
}
HDOJ 3790的更多相关文章
- hdoj 3790 最短路径问题
最短路径问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- hdoj(3790) 最短路径
最短路径问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDOJ 3790 双权值Dijkstra
#include <iostream> #include <stdio.h> #include <string.h> #include <cstring> ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- HDOJ 1326. Box of Bricks 纯水题
Box of Bricks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDOJ 1004 Let the Balloon Rise
Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...
- hdoj 1385Minimum Transport Cost
卧槽....最近刷的cf上有最短路,本来想拿这题复习一下.... 题意就是在输出最短路的情况下,经过每个节点会增加税收,另外要字典序输出,注意a到b和b到a的权值不同 然后就是处理字典序的问题,当松弛 ...
- HDOJ(2056)&HDOJ(1086)
Rectangles HDOJ(2056) http://acm.hdu.edu.cn/showproblem.php?pid=2056 题目描述:给2条线段,分别构成2个矩形,求2个矩形相交面 ...
随机推荐
- [Aaronyang] 写给自己的WPF4.5 失传的第十本秘籍4[wpf使用FontAwesome,并送其他3招心法]
总有一个人他教会你成长,然后又独自离开--Aaronyang的博客(www.ayjs.net)-www.8mi.me =============时隔两年后再看WPF,有些秘籍不太适合公开,公开了就不值 ...
- 使用 ArcGIS中的ArcObjects进行二次开发
参考网址:https://blogs.esri.com/esri/arcgis/2012/12/07/arcobjects-or-runtime-sdk/ http://resources.arcgi ...
- 转: maven进阶:一个多模块项目
一个多模块项目通过一个父POM 引用一个或多个子模块来定义.父项目,通过以下配置,将子项目关联. <packaging>pom</packaging> <modules& ...
- 【ZOJ 3480】Duck Typing
题 题意 1.有t组数据,输入时每组数据之间空格隔开,输出时也要求空格隔开. 2.每组都是一行begin开始,一行end结束. 3.class ClassName[:Super] 表示声明一个类型,S ...
- 【CodeForces 613B】Skills
题 题意 给你n个数,可以花费1使得数字+1,最大加到A,最多花费m.最后,n个数里的最小值为min,为A的有k个,给你cm和cf,求force=min*cm+k*cf 的最大值,和n个数操作后的结果 ...
- iOS之单例
今天在看多线程同步时,突然想到了单例的同步问题.自从dispatch_once出现后,我们创建单例非常简单且安全: static dispatch_once_t pred; static Single ...
- 【BZOJ-3651&3081】网络通信&StrangeRegulations Link-Cut-Tree
3651: 网络通信 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 90 Solved: 61[Submit][Status][Discuss] D ...
- groovy-保留字
groovy的保留字: abstractasassertbooleanbreakbytecasecatchcharclassconstcontinuedefdefaultdodoubleelseenu ...
- Thinkphp中验证码的使用以及验证的实现
<input class="TxtValidateCodeCssClass" id="captcha" name="captcha" ...
- Swift定义单例
而在Swift中我们通过清晰的语法便能定义类变量: 通过static定义的类变量无法在子类重写,通过class定义的类变量则可在子类重写. struct SomeStructure { static ...