HDOJ 1874
畅通工程续
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 22100 Accepted Submission(s): 7701
现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。
0 1 1
0 2 3
1 2 1
0 2
3 1
0 1 1
1 2
-1
#include<stdio.h>
#include<string.h>
int g[][];
#define inf 0xfffff
void prim(int a,int n)
{
int used[],lowcost[],i,j,k,min;
memset(used,,sizeof(used));
memset(lowcost,,sizeof(lowcost));
for(i=;i<n;i++)
lowcost[i]=g[i][a];
used[a]=;
for(i=;i<n;i++)
{
j=a;
min=inf;
for(k=;k<n;k++)
if(lowcost[k]<min&&!used[k])
min=lowcost[k],j=k;
used[j]=;
for(k=;k<n;k++)
{
if(lowcost[j]+g[k][j]<lowcost[k]&&!used[k])
lowcost[k]=lowcost[j]+g[k][j],
g[k][a]=g[a][k]=lowcost[k];
}
} }
int main()
{
int n,m,i,j,a,b,x;
while(scanf("%d %d",&n,&m)!=EOF)
{
for(i=;i<n;i++)
for(j=;j<n;j++)
g[i][j]=inf;
for(i=;i<m;i++)
{
scanf("%d %d %d",&a,&b,&x);
if(g[a][b]>x)
g[a][b]=g[b][a]=x;
}
int s,t;
scanf("%d %d",&s,&t);
if(s==t)
printf("0\n");
else
{
prim(s,n);
if(g[s][t]==inf)
printf("-1\n");
else
printf("%d\n",g[s][t]);
}
}
return ;
}
时间明显有优势!
floyed算法代码:
#include<stdio.h>
#include<string.h>
int g[][];
#define inf 0xfffff void floyed(int n)
{
int i,j,k;
for(k=;k<n;k++)
{
for(i=;i<n;i++)
{
for(j=;j<n;j++)
{
if(g[i][k]+g[k][j]<g[i][j])
g[i][j]=g[i][k]+g[k][j];
}
}
}
}
int main()
{
int n,m,i,j,a,b,x;
while(scanf("%d %d",&n,&m)!=EOF)
{
for(i=;i<n;i++)
for(j=;j<n;j++)
g[i][j]=inf;
for(i=;i<m;i++)
{
scanf("%d %d %d",&a,&b,&x);
if(g[a][b]>x)
g[a][b]=g[b][a]=x;
}
int s,t;
scanf("%d %d",&s,&t);
if(s==t)
printf("0\n");
else
{
floyed(n);
if(g[s][t]==inf)
printf("-1\n");
else
printf("%d\n",g[s][t]);
}
}
return ;
}
| 9847309 | 2013-12-17 18:12:17 | Accepted | 1874 | 31MS | 340K | 1196 B | C++ | 泽泽 |
HDOJ 1874的更多相关文章
- hdoj 1874 dijkstra
在做PAT的甲1003,思考DFS和图什么的,时间紧张直接去看柳神(日后上传柳神的C++版本)的订阅,得知是dijkstra,转去用hdoj 1874练手,写了两天,终于调出来了 题目链接:http: ...
- hdoj 1874 畅通工程续(单源最短路+dijkstra)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 思路分析:该问题给定一个无向图.起始点和终点,要求求出从起始点到终点的最短距离: 使用Dijks ...
- hdoj 1874 畅通工程续
Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行 ...
- hdoj 1874 畅通工程续【dijkstra算法or spfa算法】
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- hdoj 1874 畅通project续【SPFA】
畅通project续 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Su ...
- HDOJ 1874 畅通project续
畅通project续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 最短路径算法—Dijkstra(迪杰斯特拉)算法分析与实现(C/C++)
Dijkstra算法 ———————————最后更新时间:2011.9.25———————————Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径. ...
- Dijkstra算法 c语言实现
Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法能得出最短路径的最优 ...
- 杭电hdoj题目分类
HDOJ 题目分类 //分类不是绝对的 //"*" 表示好题,需要多次回味 //"?"表示结论是正确的,但还停留在模块阶 段,需要理解,证明. //简单题看到就 ...
随机推荐
- MVC上传文件示例
[HttpPost] public void SaveFile(FormCollection form) { var c = Request.Files.Count; ]; } @using (Htm ...
- web服务器
1.打破信息孤岛,实现信息的集成 2.配置文件 web.xml 定义自己的服务器应该要哪些功能! 3.tomcat 是一个servlet容器,一个web服务器. 部署:将web应用 ...
- iOS不得姐项目--登录模块的布局,设置文本框占位文字颜色,自定义内部控件竖直排列的按钮
一.登录模块的布局 将一整部分切割成若干部分来完成,如图分成了三部分来完成 设置顶部状态栏为白色的方法 二.设置文本框占位文字颜色 <1>方法一与方法二实现原理是同一种,都是通过设置pla ...
- WCF学习(二)对控件简单了解以及4个文本控件的简介
WPF基础控件 系统默认提供的基础控件: 文本控件介绍与用法 Label控件 label控件:一般用户描述性文字显示. 在Label控件使用时,一般给予用户提示.用法上没有什么很特殊的,label控件 ...
- DVR分布式路由
1. 背景 没有使用DVR的场景: 从图中可以明显看到东西向和南北向的流量会集中到网络节点,这会使网络节点成为瓶颈. 如果启用DVR,如下图: 对于东西向的流量, 流量会直接在计算节点之间传递. 对于 ...
- 关于MyEclipse对Struts2配置文件较检异常 Invalid result location value/parameter
有时候Struts.xml配置没有错误,完全可以顺利运行,而MyEclipse9以上版本却经常出现一大坨错误标识,错误信息是 Invalid result location value/paramet ...
- poj 1845 数论综合
题意:求A^B的所有因数的和 mod 9901 sol:一开始毫无思路,因为很多定理都不知道-_-|| 1. 整数的唯一分解定理: 任意正整数都有且只有一种方式写出其素因子的乘积表达式. A=(p1^ ...
- Windows Management Instrumentation WMI Security Technology Learning
目录 . 引言 . WMI(Windows Management Instrumentation)简介 . 基于WMI的攻击向量 . WMI编程示例 0. 引言 在进行服务器主机的入侵检测.安全攻防的 ...
- Python socket编程之五:更新分时图
f1.py # -*- coding: utf-8 -*- import socket import struct import sqlalchemy import pandas ########## ...
- 织梦DedeCMS首页调用单页文档内容的方法
很多使用织梦dedecms单页文档功能的朋友都想知道如何在织梦首页调用单页文档的内容,下面就教大家具体的实现方法: 具体步骤如下: 首先在首页模板需要显示单页文档内容的地方插入如下代码: {dede: ...