2018徐州网络赛F

维护每个字符出现的次数即可

#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define mem(x) memset(x,0,sizeof(x))
#define mem1(x) memset(x,-1,sizeof(x))
using namespace std;
typedef long long ll;
typedef double db;
const int M = 1e5+7;
const double pi = acos(-1);
const int inf = 2147483647;
const int mod = 1e9+7;

map<pair<int,int>,int> begi,clos;
int T,k,n;
int ans=0,tmp;
pair<int,int> t;
void init(){
    begi.clear();
    clos.clear();
    ans=0;
}
void solve(){
    for(int i=1;i<=n;i++){
        scanf("%d",&k);
        for(int j=1;j<=k;j++){
            scanf("%d%d",&t.first,&t.second);
            if(begi[t]==0){
                begi[t]=i;
                clos[t]=i;
                if(ans<1)ans=1;
            }
            else{
                if(clos[t]==i)continue;
                if(clos[t]==i-1){
                    clos[t]=i;
                    tmp=clos[t]-begi[t]+1;
                    if(ans<tmp)ans=tmp;
                }
                else{
                    begi[t]=i;
                    clos[t]=i;
                }
            }
        }
    }
}
int main(){
    //freopen("1.in","r",stdin);
        //freopen("1.out","w",stdout);
    scanf("%d",&T);
    while(T--)
    {
        init();
        scanf("%d",&n);
        solve();
        printf("%d\n",ans);
    }
    return 0;
}
View Code

猜你喜欢

转载自www.cnblogs.com/LMissher/p/9615329.html