(编程题) 小明是一名算法工程师,同时也是一名铲屎官。某天,他突发奇想,想从猫咪的视频里挖掘一些猫咪的运动信息。为了提取运动信息,他需要从视频的每一帧提取“猫咪特征”。一个猫咪特征是一个两维的vector<x, y>。如果x_1=x_2 and y_1=y_2,那么这俩是同一个特征。
因此,如果喵咪特征连续一致,可以认为喵咪在运动。也就是说,如果特征<a, b>在持续帧里出现,那么它将构成特征运动。比如,特征<a, b>在第2/3/4/7/8帧出现,那么该特征将形成两个特征运动2-3-4 和7-8。
现在,给定每一帧的特征,特征的数量可能不一样。小明期望能找到最长的特征运动。
参考代码
n = int(input())
while n > 0:
m = int(input())
res = 1
d = {}
for i in range(m):
l = list(map(int , input().split()))
k = l[0]
tmp_d = {}
for j in range(k):
index = l[2 * j + 1] * 1000000000 + l[2 * j + 2]
if index in d:
tmp_d[index] = d[index] + 1
res = max(res, tmp_d[index])
else:
tmp_d[index] = 1
d = tmp_d
print(res)
n -=