zoukankan      html  css  js  c++  java
  • poj2394

    最短路,有重边

    View Code
    #include <iostream>
    #include
    <cstdlib>
    #include
    <cstring>
    #include
    <cstdio>
    #include
    <algorithm>
    using namespace std;

    #define INF 0x3f3f3f3f
    #define N 505

    int path[N], vis[N];
    int n, m, c, p;
    int lowcost[N];
    int cost[N][N];
    int cow[N];
    int ans[N];

    void Dijkstra()
    {
    int i, j, min;
    memset(vis,
    0, sizeof(vis));
    int beg = 0;
    vis[beg]
    = 1;
    for (i = 0; i < n; i++)
    {
    lowcost[i]
    = cost[beg][i];
    path[i]
    = beg;
    }
    lowcost[beg]
    = 0;
    path[beg]
    = -1;
    int pre = beg;
    for (i = 1; i < n; i++)
    {
    min
    = INF;
    for (j =0; j < n; j++)
    if (vis[j] == 0 && lowcost[pre] + cost[pre][j] <lowcost[j])
    {
    lowcost[j]
    = lowcost[pre] + cost[pre][j];
    path[j]
    = pre;
    }
    for (j = 0; j < n; j++)
    if (vis[j] == 0 && lowcost[j] < min)
    {
    min
    = lowcost[j];
    pre
    = j;
    }
    vis[pre]
    = 1;
    }
    }

    int main()
    {
    //freopen("t.txt", "r", stdin);
    scanf("%d%d%d%d", &n, &m, &c, &p);
    for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
    cost[i][j]
    = INF;
    for (int i = 0; i < n; i++)
    cost[i][i]
    = 0;
    for (int i = 0; i < m; i++)
    {
    int a, b, x;
    scanf(
    "%d%d%d", &a, &b, &x);
    a
    --;
    b
    --;
    cost[a][b]
    = cost[b][a] = min(x, cost[a][b]);
    }
    for (int i = 0; i < c; i++)
    scanf(
    "%d", &cow[i]);
    Dijkstra();
    int tot = 0;
    for (int i = 0; i < c; i++)
    if (lowcost[cow[i] - 1] <= p)
    ans[tot
    ++] = i;
    sort(ans, ans
    + tot);
    printf(
    "%d\n", tot);
    for (int i = 0; i < tot; i++)
    printf(
    "%d\n", ans[i] + 1);
    return 0;
    }
  • 相关阅读:
    ES6 一些新特性的总结
    前端模块化开发的规范:AMD与CDM
    webpack与grunt/glub 的比较
    前端总结(一)
    前端性能的优化
    Typescript 常见写法
    显示模式------行内元素、块元素,行内块元素
    浏览器前缀及内核
    BFC规范
    数据库习题练习
  • 原文地址:https://www.cnblogs.com/rainydays/p/2168679.html
Copyright © 2011-2022 走看看