给n个框架,每个给k个坐标,问最长的连续出现的坐标值长度。
思路:map直接记录就行了,只不过需要注意的是同一个框架会出现相同坐标。
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
typedef pair<int,int>P;
map<P, int> mp ;
map<P, int> num ;
int main()
{
int T;
scanf("%d",&T);
while( T-- )
{
int k ;
mp.clear();
num.clear();
int n ;
scanf("%d",&n);
int x, y ;
int res = 0 ;
for( int i = 1 ; i <= n ; i++ )
{
scanf("%d",&k);
for( int j = 0 ; j < k ; j++ )
{
scanf("%d%d",&x,&y);
if( mp[(P(x,y))] == i ) continue; //第i次输入的时候长度不用加1
if( mp[P(x,y)] == i - 1 ) //前一位有他就加1
{
num[P(x,y)] ++ ;
res = max( res, num[P(x,y)] ) ; //更新最大的res 对于每个
}
else //如果前一个没有 则更新<x,y>的长度值为1
{
num[P(x,y)] = 1 ;
}
mp[P(x,y)] = i ; //更新位置
}
}
printf("%d\n",res);
}
return 0 ;
}