zoukankan      html  css  js  c++  java
  • HDU_2066 一个人的旅行(Dijkstra)

      开始用Floyd做的,TLE!更二的时我自己找了一组1 1000 的数据,4S才算出来,本身程序就有问题,我居然还交上去了。。。后来用Dijkstra做,过了。。。200+ms;

    #include <iostream>
    #include
    <cstdio>
    #include
    <cstring>

    using namespace std;

    const int N = 1005;
    const int inf = 1000000;

    int dis[N][N];
    int low[N];
    int vis[N];
    int num1[N];
    int num2[N];

    void Dijkstra(int n, int v)
    {
    int flag, min, i, j;
    for(i = 1; i <= n; i++)
    {
    low[i]
    = dis[v][i];
    vis[i]
    = 0;
    }

    vis[v]
    = 1;
    for(i = 2; i <= n; i++)
    {
    min
    = inf; flag = v;
    for(j = 2; j <= n; j++)
    {
    if(min > low[j] && !vis[j])
    {
    min
    = low[j];
    flag
    = j;
    }
    }
    vis[flag]
    = 1;

    for(j = 2; j <= n; j++)
    if(!vis[j] && dis[flag][j] < inf)
    {
    int tmp = low[flag] + dis[flag][j];
    if(tmp < low[j])
    low[j]
    = tmp;
    }
    }

    }
    int main()
    {
    //freopen("data.in", "r", stdin);

    int t, s, d;
    while(~scanf("%d%d%d", &t, &s, &d))
    {
    int a, b, c, i, j, max = -inf;

    for(i = 1; i <= N; i++)
    for(j = 1; j <= N; j++)
    {
    if(i == j)
    dis[i][j]
    = 0;
    else
    dis[i][j]
    = inf;
    }

    for(i = 1; i <= t; i++)
    {
    scanf(
    "%d%d%d", &a, &b, &c);
    if(c < dis[a][b])
    dis[a][b]
    = dis[b][a] = c;
    if(max < a) max = a;
    if(max < b) max = b;
    }

    for(i = 1; i <= s; i++)
    scanf(
    "%d", &num1[i]);

    for(i = 1; i <= d; i++)
    scanf(
    "%d", &num2[i]);

    int min = inf;
    for(i = 1; i <= s; i++)
    {
    Dijkstra(max, num1[i]);
    for(j = 1; j <= d; j++)
    {
    if(min > low[num2[j]])
    min
    = low[num2[j]];
    }
    }
    printf(
    "%d\n", min);
    }
    }
  • 相关阅读:
    Linux学习之telnet命令
    Linux学习netstat
    php 将字符串中的连续多个空格转换为一个空格
    erlang: Programming Rules and Conventions。
    jQuery.data() 方法
    检测一个DOM对象是否为空
    PHP 根据类名和方法名已面向对象的方式执行函数。
    PHP函数前面的@。
    php涉及数据库操作时响应很慢。
    Apache实现动态虚拟主机
  • 原文地址:https://www.cnblogs.com/vongang/p/2169584.html
Copyright © 2011-2022 走看看