【题目链接】https://nanti.jisuanke.com/t/31458
【题目大意】有N个帧,每帧有K个动作特征,每个特征用一个向量表示(x,y)。两个特征相同当且仅当他们在不同的帧中出现且向量的两个分量分别相等。求最多连续相同特征的个数?
【题解】
开两个map,一个存连续访问次数,一个存上一个访问该元素的帧的下标。
写完交上去之后WA了,之后才想到有坑点,一个帧的动作特征有可能是相同的,所以加个判断,判断一下上一个访问该元素的帧是不是当前帧,是的话就continue了
还有一点,这个题没给一帧中的数对的个数的范围,(x,y)的大小范围也没给,比较迷......就都开long long 做了
#include<bits/stdc++.h>
#define ll long long
#define pr pair<ll,ll>
using namespace std;
int main()
{
//freopen("input.txt","r",stdin);
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
map<pr,ll> _map;
map<pr,ll> vis;
pr x;
ll ans=0;
for(int i=1;i<=n;++i)
{
ll t;
scanf("%lld",&t);
if(t==0)continue;
while(t--)
{
scanf("%lld%lld",&x.first,&x.second);
if(vis[x]==i-1)
_map[x]++;
else
if(vis[x]==i)continue;
else
_map[x]=1;
vis[x]=i;
ans=max(ans,_map[x]);
}
}
printf("%lld\n",ans);
}
return 0;
}