该题读取特征时需要每次都读入x,y两个数字,两个数字组成二元组。每一帧的第一个数字代表有多少个这样的二元组,遍历即可。一行代表一帧,如果上一行的二元组在当前行也出现则为连续帧。用一个map来存储连续的次数,键为二元组,值为次数。如果为连续帧则次数加1,否则次数变为1。

#include <stdio.h>
#include <iostream>
#include <map>
#include <set>

using namespace std;

int main()
{
    map<pair<int,int>,int> pre_feature_map;
    int n;
    int m;
    cin >> n >> m;
    int max_cnt = 0;
    while(n--)
    {
        while(m--)
        {
            int num;
            cin >> num;
            map<pair<int,int>,int> cur_feature_map;
            for(int i=0;i<num;i++)
            {
                int x,y;
                cin >> x >> y;
                pair<int,int> feature(x,y);
                //之前的feature_map中能找到当前feature,则是连续的;
                if(pre_feature_map.count(feature))
                {
                    cur_feature_map[feature] = pre_feature_map[feature] + 1;
                }else
                {
                    cur_feature_map[feature] = 1;
                }
                if(cur_feature_map[feature] > max_cnt)
                {
                    max_cnt = cur_feature_map[feature];
                }
            }
            pre_feature_map.swap(cur_feature_map);
        }
        cout << max_cnt << endl;
    }
}