zoukankan      html  css  js  c++  java
  • HDOJ 6026 最短路

    链接:

    http://acm.hdu.edu.cn/showproblem.php?pid=6026

    题意:

    给你一个无向图,要求你删边删成一棵树,要求从0到每个节点的路径都是原图中的最短路

    题解:

    最短路,先建一个只包含最短路的有向无环图,每一个点选择任意一条入边即可生成一个树形图,那么树的种类就等于每个点的入度乘积

    代码:

    31 int n;
    32 int G[60][60];
    33 int d[60];
    34 ll a[60];
    35 
    36 void dijkstra(int s) {
    37     priority_queue<PII, vector<PII>, greater<PII> > que;
    38     memset(d, 0x3f, sizeof(d));
    39     d[s] = 0;
    40     que.push(mp(0, s));
    41     while (!que.empty()) {
    42         PII p = que.top(); que.pop();
    43         int v = p.second;
    44         if (d[v] < p.first) continue;
    45         rep(i, 0, n) if (G[v][i]) {
    46             if (d[i] > d[v] + G[v][i]) {
    47                 d[i] = d[v] + G[v][i];
    48                 que.push(mp(d[i], i));
    49                 a[i] = 1;
    50             }
    51             else if (d[i] == d[v] + G[v][i]) a[i]++;
    52         }
    53     }
    54 }
    55 
    56 int main() {
    57     while (cin >> n) {
    58         memset(a, 0, sizeof(a));
    59         rep(i, 0, n) rep(j, 0, n) scanf("%1d", &G[i][j]);
    60         dijkstra(0);
    61         ll ans = 1;
    62         rep(i, 1, n) ans = (ans*a[i]) % MOD;
    63         cout << ans << endl;
    64     }
    65     return 0;
    66 }
  • 相关阅读:
    python修改镜像源
    nginx 记录
    linux 常用命令
    修改ssh连上默认目录
    sqlplus 导出一张表数据
    推送kafka消息失败
    Mybatis generator配置
    Oracle导库
    docker -- 安装mysql8.0.16
    安装自动集成工具jenkins
  • 原文地址:https://www.cnblogs.com/baocong/p/7216380.html
Copyright © 2011-2022 走看看