提交时间:2022-07-19 12:12:29
运行 ID: 52445
#include <bits/stdc++.h> using namespace std; //int d[8100]; bool a[8100][8100]; int n,m; int k; int ad; int ansl=0; int ab[8100][8100]; struct abc { int num; int d; int flag=0,aa; } dd[8100]; bool cmp(abc a,abc b) { if (a.d==b.d) { return a.num < b.num; } return a.d<b.d; } int main() { cin>>n>>m; //int k; for (int i=1; i<=m; i++) { cin>>k; for (int j=1; j<=k; j++) { cin>>ad; dd[ad].d++; ab[i][j]=ad; dd[ad].num=ad; for (int add=1; add<j; add++) { ab[ad][ab[i][add]]=1;//yyy ab[ab[i][add]][ad]=1; // // //cout<<ad<<" "<<ab[i][add]<<endl;; }//= } }//|| sort(dd+1,dd+n+1,cmp); for (int i=1; i<=n; i++) { for (int j=i+1; j<=n; j++) { if ( ab[dd[i].num][dd[j].num] || ab[dd[j].num][dd[i].num] ) { if (!dd[j].flag && !dd[i].flag) { dd[j].flag=1; dd[i].flag=1; ansl++; } } } } //for (itn) cout<<ansl; return 0; }