三角形的前提是线。对每个点进行深度为2的dfs就好了,当深度等于2时意味着构成一条线。然后判断线的末尾与起点之间是否有连边即可,用来更新三角形的个数。 #include<bits/stdc++.h> using namespace std; int n, m, gx[205][205], ecnt, tcnt; vector<int> g[205]; int gcd(int a, int b) { if(b==0) return a; return gcd(b, a%b); } void fill(int x, int dep, int fa, int cen) { i...