博客
关于我
HDU 1285 确定比赛名次【拓扑排序】链式向前星+优先队列
阅读量:369 次
发布时间:2019-03-04

本文共 1609 字,大约阅读时间需要 5 分钟。

?????????????????????????????????????????????????????????????????????????????????????????

????

  • ????: ?????????????????????????????????????????P1?P2?????????????????????????

  • ????: ????????????????????????????????Kahn???????????????????????DAG??

  • ????: ?Kahn??????????????????0????????????????????????????????????

  • ????:

    • ???????????0?
    • ?????????????????????
    • ????0??????????
    • ????????????????????????
    • ?????????????????
  • ????

    #include 
    #include
    #include
    #include
    #include
    using namespace std;int main() { int n, m; while (true) { cin >> n >> m; if (m == 0) break; vector
    in(n + 1, 0); vector
    head(n + 1); vector
    > adj(n + 1); int cnt = 0; for (int i = 1; i <= m; ++i) { int p1, p2; cin >> p1 >> p2; adj[p1].push_back(p2); in[p2]++; } // Initialize the priority queue priority_queue
    , greater
    > q; for (int i = 1; i <= n; ++i) { if (in[i] == 0) q.push(i); } vector
    ans; while (!q.empty()) { int u = q.top(); q.pop(); ans.push_back(u); for (int v : adj[u]) { in[v]--; if (in[v] == 0) q.push(v); } } // Output the result if (ans.size() != n) { // This should not happen as per the problem statement cout << "Error" << endl; } else { for (int i = 0; i < ans.size(); ++i) { if (i > 0) cout << " "; cout << ans[i]; } } } return 0;}

    ????

  • ????: ????????n???????m????????????????????????

  • ???????: ????????????0?????????????????????

  • ????: ??Kahn???????????????????????????????0?????????

  • ????: ????????????????????

  • ???????????????????????????????????????????

    转载地址:http://qlyg.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现entropy熵算法(附完整源码)
    查看>>
    Objective-C实现euclidean distance欧式距离算法(附完整源码)
    查看>>
    Objective-C实现Euclidean GCD欧几里得最大公约数算法(附完整源码)
    查看>>
    Objective-C实现euclideanDistance欧氏距离算法(附完整源码)
    查看>>
    Objective-C实现euler method欧拉法算法(附完整源码)
    查看>>
    Objective-C实现eulerianPath欧拉路径算法(附完整源码)
    查看>>
    Objective-C实现eval函数功能(附完整源码)
    查看>>
    Objective-C实现Exceeding words超词(差距是ascii码的距离) 算法(附完整源码)
    查看>>
    Objective-C实现extended euclidean algorithm扩展欧几里得算法(附完整源码)
    查看>>
    Objective-C实现Factorial digit sum阶乘数字和算法(附完整源码)
    查看>>
    Objective-C实现factorial iterative阶乘迭代算法(附完整源码)
    查看>>
    Objective-C实现factorial recursive阶乘递归算法(附完整源码)
    查看>>
    Objective-C实现FigurateNumber垛积数算法(附完整源码)
    查看>>
    Objective-C实现Gale-Shapley盖尔-沙普利算法(附完整源码)
    查看>>
    Objective-C实现hamiltonianCycle哈密尔顿图算法(附完整源码)
    查看>>
    Objective-C实现hamming numbers汉明数算法(附完整源码)
    查看>>
    Objective-C实现hanning 窗(附完整源码)
    查看>>
    Objective-C实现hanoiTower汉诺塔算法(附完整源码)
    查看>>
    Objective-C实现hardy ramanujana定理算法(附完整源码)
    查看>>
    Objective-C实现highest response ratio next高响应比优先调度算法(附完整源码)
    查看>>