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

最短路径问题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 22854    Accepted Submission(s):
6813

Problem Description
给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。
 
Input
输入n,m,点的编号是1~n,然后是m行,每行4个数
a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数
s,t;起点s,终点。n和m为0时输入结束。
(1<n<=1000, 0<m<100000, s != t)
 
Output
输出 一行有两个数, 最短距离及其花费。
 
Sample Input
3 2
1 2 5 6
2 3 4 5
1 3
0 0
 
Sample Output
9 11
 
Source
 
分析:路最短时选最少费用。
这里的输入判重,我要WA哭了。还有我的freopen没有注释掉,差点晕掉。
#include <cstring>
#include <stdio.h>
#include <algorithm> using namespace std; #define maxn 1010
#define INF 0x3f3f3f3f
int dis[maxn],visit[maxn],cost[maxn];
int maps[maxn][maxn],maps2[maxn][maxn];
int n,m; int start,send;
void dijkstra(int s)
{ for(int i=; i<=n; i++)
{
dis[i]=maps[start][i];
cost[i]=maps2[start][i];
visit[i]=;
} visit[s]=;
dis[s] = ;
cost[s] = ; for(int i=; i<n-; i++)
{
int temp=INF, k =;
for(int j=; j<=n; j++)
{
if(visit[j]==false)
{
if(temp>dis[j])
{
temp = dis[j];
k = j;
}
}
}
visit[k]=;
for(int j=; j<=n; j++)
{
if(!visit[j])
{
if(dis[j]>dis[k]+maps[k][j])
{
dis[j]=dis[k]+maps[k][j];
cost[j]=cost[k]+maps2[k][j];
}
else if(dis[j]==dis[k]+maps[k][j])
cost[j]=min(cost[j],cost[k]+maps2[k][j]);
}
}
}
}
int main()
{
//freopen("input.txt","r",stdin);
while(scanf("%d%d",&n,&m),n)
{
for(int i=; i<=n; ++i)
{
for(int j=; j<=n; ++j)
{
if(i==j)
maps[i][j]=maps2[i][j]=;
else
maps[i][j]=maps2[i][j]=INF;
}
}
while(m--)
{
int a,b,d,c;
scanf("%d%d%d%d",&a,&b,&d,&c);
if(maps[a][b]>d)
{
maps[a][b]=maps[b][a]=d;
maps2[a][b]=maps2[b][a]=c;
}
if(maps[a][b]==d&&maps2[a][b]>c)
maps2[a][b]=maps2[b][a]=c;
}
scanf("%d%d",&start,&send);
dijkstra(start);
printf("%d %d\n",dis[send],cost[send]);
}
return ;
}

HDU(3790),最短路二级标准的更多相关文章

  1. ACM: HDU 3790 最短路径问题-Dijkstra算法

    HDU 3790 最短路径问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Des ...

  2. ACM: HDU 2544 最短路-Dijkstra算法

    HDU 2544最短路 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Descrip ...

  3. UESTC 30 &&HDU 2544最短路【Floyd求解裸题】

    最短路 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  4. hdu 5521 最短路

    Meeting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  5. HDU - 3790 最短路径问题 (dijkstra算法)

    HDU - 3790 最短路径问题 Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费 ...

  6. HDU - 2544最短路 (dijkstra算法)

    HDU - 2544最短路 Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以 ...

  7. HDU 3790最短路径问题 [最短路最小花费]

    题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=3790] 最短路径问题 Time Limit: 2000/1000 MS (Java/Others)  ...

  8. hdu 3790 最短路径问题(两个限制条件的最短路)

    http://acm.hdu.edu.cn/showproblem.php?pid=3790 有两个条件:距离和花费.首先要求距离最短,距离相等的条件下花费最小. dijkstra,仅仅是在推断条件时 ...

  9. HDU 3790 最短路径问题 (最短路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3790 简单的最短路问题,这题听说有重边.我用spfa和dijkstra写了一遍,没判重边,速度都差不多 ...

随机推荐

  1. PostgreSQL 中日期类型转换与变量使用及相关问题

    PostgreSQL中日期类型与字符串类型的转换方法 示例如下: postgres=# select current_date; date ------------ 2015-08-31 (1 row ...

  2. Leetcode: Insert Delete GetRandom O(1) - Duplicates allowed

    Design a data structure that supports all following operations in average O(1) time. Note: Duplicate ...

  3. java-JDBC-Oracle数据库连接

    java-JDBC连接oracle数据库,StateMent和PreparedStatement对比(查询query) 1. PreparedStatement接口继承Statement, Prepa ...

  4. 判断java中两个对象是否相等

    java中的基本数据类型判断是否相等,直接使用"=="就行了,相等返回true,否则,返回false. 但是java中的引用类型的对象比较变态,假设有两个引用对象obj1,obj2 ...

  5. Struts2的Action名称搜索顺序:2014.12.30

    struts.xml配置: <struts> <package name="hw" namespace="/test" extends=&qu ...

  6. snmp getTable demo :iftable ipAddresstable

    package org.huangxf.snmp.test; import java.io.IOException; import java.util.List; import org.snmp4j. ...

  7. demo06

    city_data.xml <?xml version="1.0" encoding="utf-8"?> <resources> < ...

  8. cmd进入某个目录

    love you my pig java枚举类 cmd进入某个目录 2011-04-06 15:49:38| 分类: 小知识 | 标签: |字号大中小 订阅     1.开始->运行->C ...

  9. 夺命雷公狗---DEDECMS----6快速入门之总结篇

    我们dedecms四大表分别是: dede_channeltype(模型表) dede_arctype(栏目表) dede_archives(文章主表) dede_addonXXXX(附加表) 使用d ...

  10. [php] PHP Fatal error: Class 'AMQPConnection' not found

    When using rabbitmq, $this->conn = new AMQPConnection($conn_args); $this->conn->connect(); ...