Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
24286 | M0yunAllgor1thm | 【BJ】T3 | C++ | 运行出错 | 0 | 2 MS | 4944 KB | 2280 | 2023-12-21 19:32:58 |
#include <bits/stdc++.h> #define LL long long #define PII pair<int,int> using namespace std; const int MAXN=1e5+5; LL ans=0; int T,N; vector<int>b[MAXN],v[MAXN]; int f[MAXN]; int tmp; bool cmp1(int i,int j) { return i<j; } bool cmp2(int i,int j) { return f[i]>f[j]; } bool cmp3(int i,int j) { return b[i].size()<b[j].size(); } int main() { freopen("light.in","r",stdin); scanf("%d",&T); while(T--) { scanf("%d",&N); for(int i=1;i<=100000;i++) v[i].clear(); for(int i=1;i<=N;i++) { b[i].clear(); } for(int i=1;i<=N;i++) { int L; scanf("%d",&L); for(int j=1;j<=L;j++) { int t; scanf("%d",&t); b[i].push_back(t); } sort(b[i].begin(),b[i].end(),cmp1); } int ans=100002; for(int i=1;i<=N;i++) { auto siz=unique(b[i].begin(),b[i].end()); if(siz!=b[i].end()) { b[i].erase(siz,b[i].end()); ans=min(ans,(int)b[i].size()+1); } // for(int c:b[i]) printf("%d ",c); // puts(""); for(int c:b[i]) v[c].push_back(i); } for(int i=1;i<=100000;i++) if(v[i].size()) sort(v[i].begin(),v[i].end(),cmp3); /* for(int i=1;i<=100000;i++) { if(v[i].size()) { printf("COLOR%d:",i); for(int c:v[i]) printf("%d ",c); puts(""); } }*/ for(int i=1;i<=N;i++) { for(int c:b[i]) { if(v[c][0]==i) { if(v[c].size()==1) f[c]=114514; else f[c]=b[v[c][1]].size(); } else f[c]=b[v[c][0]].size(); } tmp=i; sort(b[i].begin(),b[i].end(),cmp2); for(int j=0;j<b[i].size();j++) { ans=min(ans,j+1+f[b[i][j]]); } } printf("%lld\n",ans); } //printf("%.10lf\n",1.0*clock()/CLOCKS_PER_SEC); return 0; }