三元环计数
题目:
这道题目比较简单,由于数据量比较小我们用邻接矩阵来存图,方便查找两点间是否有连接
i,j,k三重循环暴力枚举,因为会有重复情况所以我们要保证i<j<k
故代码为:
#include<bits/stdc++.h> #define io ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) using namespace std; const int N=1001; int n,m; int a[N][N]; int main() { io; cin>>n>>m; for(int i=1;i<=m;i++) { int a1,b1; cin>>a1>>b1; a[a1][b1]=a[b1][a1]=1; } int ans=0; for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) { for(int k=j+1;k<=n;k++) { int t=0; if(a[i][j]==1) t++; if(a[j][k]==1) t++; if(a[i][k]==1) t++; if(t==3) ans++; } } } cout<<ans; return 0; }