Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
24262 baka24 【BJ】T3 C++ 运行超时 0 2865 MS 7120 KB 1754 2023-12-21 13:42:43

Tests(0/3):


#include<bits/stdc++.h> using namespace std; #define int long long const int MAXN=100010; int t,n,mxc,ans,l[MAXN],c[MAXN],F[MAXN],cnt[MAXN],js[MAXN],f[2][MAXN],Fj[MAXN],sml[MAXN]; bool cmp(int x,int y){return x>y;} signed main(){ scanf("%lld",&t); while(t--){ for(int i=1;i<=MAXN-5;i++){cnt[i]=0;js[i]=0;} scanf("%lld",&n); for(int i=1;i<=n;i++){ scanf("%lld",&l[i]); bool fl=0; for(int j=1;j<=l[i];j++){ scanf("%lld",&c[sml[i]+j]); if(js[c[sml[i]+j]]!=i)cnt[i]++; else fl=1; js[c[sml[i]+j]]=i; } sml[i]=sml[i-1]+l[i]; if(fl)ans=max(ans,cnt[i]+1); } for(int i=1;i<=n;i++){ for(int j=1;j<=l[i];j++){ if(f[0][c[sml[i]+j]]<cnt[i]){ f[1][c[sml[i]+j]]=f[0][c[sml[i]+j]]; f[0][c[sml[i]+j]]=cnt[i]; Fj[c[sml[i]+j]]=i; continue; } if(f[1][c[sml[i]+j]]<cnt[i]){ f[1][c[sml[i]+j]]=cnt[i]; } } } for(int i=1;i<=MAXN-5;i++)cnt[i]=0,js[i]=0; int tot=0; for(int i=1;i<=n;i++){ tot=0; for(int j=1;j<=l[i];j++){ if(js[c[sml[i]+j]]!=i){ cnt[++tot]=f[(bool)(i==Fj[c[sml[i]+j]])][c[sml[i]+j]]; js[c[sml[i]+j]]=i; } } sort(cnt+1,cnt+n+1,cmp); for(int j=1;j<=tot;j++){ ans=min(ans,j+cnt[j]); } } printf("%lld\n",ans); } return 0; }


测评信息: