桂林电子科技大学第三届ACM程序设计竞赛 F题

简介: 桂林电子科技大学第三届ACM程序设计竞赛 F题
链接:https://ac.nowcoder.com/acm/contest/558/F
来源:牛客网
小猫在研究有向图。小猫在研究联通性。
给定一张N个点,M条边的有向图,问有多少点对(u,v)(u<v),满足u能到达v且v也能到达u。
题意:给定一张N个点,M条边的有向图,问有多少点对(u,v)(u<v),满足u能到达v且v也能到达u。
思路:跑一遍floyd,判断dis[u][v] != inf && dis[v][u] != inf 说明u -> v && v->u
#include <bits/stdc++.h>
using namespace std;
int a[1005][1005];
const int inf = 1e9;
int n, m, u, v;
int main() {
    cin >> n >> m;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            a[i][j] = inf;
        }
    }
    int ans = 0;
    for (int i = 1; i <= m; i++) {
        cin >> u >> v;
        a[u][v] = 1;
    }
    for (int k = 1; k <= n; k++) {
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                a[i][j] = min(a[i][j], a[i][k] + a[k][j]);
            }
        }
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            if (i != j && a[i][j] < inf && a[j][i] < inf) {
                ans++;
            }
        }
    }
    cout << ans / 2 << endl;
    return 0;
}
相关文章
|
7月前
集美大学第九届程序设计竞赛
集美大学第九届程序设计竞赛
44 0
|
1月前
第十三届西南民族大学程序设计竞赛
第十三届西南民族大学程序设计竞赛
21 0
|
11月前
|
C++
山东省第一届省赛 Ivan comes again
山东省第一届省赛 Ivan comes again
44 0
|
机器学习/深度学习 人工智能 安全
今天,我们和香港科技大学在一起了
今天,我们和香港科技大学在一起了
99 0
桂林电子科技大学第三届ACM程序设计竞赛 H题
桂林电子科技大学第三届ACM程序设计竞赛 H题
54 0
桂林电子科技大学第三届ACM程序设计竞赛 J题
桂林电子科技大学第三届ACM程序设计竞赛 J题
72 0
桂林电子科技大学第三届ACM程序设计竞赛 B题
桂林电子科技大学第三届ACM程序设计竞赛 B题
58 0
桂林电子科技大学第三届ACM程序设计竞赛 I题
桂林电子科技大学第三届ACM程序设计竞赛 I题
57 0
桂林电子科技大学第三届ACM程序设计竞赛 C题
桂林电子科技大学第三届ACM程序设计竞赛 C题
102 0
桂林电子科技大学第三届ACM程序设计竞赛 E题
桂林电子科技大学第三届ACM程序设计竞赛 E题
61 0