美团点评笔试编程题——图的闭包

时间:2021-12-11 22:43:22

题目大意

如果一个无向图,每个点与其他的点都存在一条边,就成为图的闭包

样例输入

4 3
1 2
1 4
2 3

样例输出

3

题解

水题。就是每个点应该有n-1条边。统计一下差的边的总和,再除以2,因为是无向图。

AC代码

#include<iostream>
#include<vector>
using namespace std;
const int N = 55;
vector<int>v[N];
int n , m;

int main(){
    cin >> n >> m;
    int from , to;
    for(int i = 0;i < m;i++){
        cin >> from >> to;
        v[from].push_back(to);
        v[to].push_back(from);
    }   
    int ans = 0;
    for(int i = 1;i <= n;i++){
        ans += n - 1 - v[i].size();
    }
    cout << ans / 2 << endl;
    return 0;
}