题目描述
https://www.nowcoder.com/practice/5afcf93c419a4aa793e9b325d01957e2
题解
模拟,遍历帧。以 特征向量 为 key
,起始帧和当前连续帧数 为 value
。
在每一帧,如果特征不存在,加入该特征,并设初值;如果该特征存在但不连续了,重置为初值;如果该特征存在且连续,更新当前的连续帧数。如果 起始帧 + 当前连续帧数 = 当前帧,说明当前帧使特征连续,同时检查更新最大连续帧数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #include <iostream> #include <map> using namespace std;
int main() { int n; cin >> n; while (n--) { int m, max_continue = 1; cin >> m; map<pair<int, int>, pair<int, int>> mp; for (int i = 0; i < m; i++) { int t, x, y; cin >> t; while (t--) { cin >> x >> y; pair<int, int> p(x, y); if (mp.find(p) != mp.end() && mp[p].first + mp[p].second == i) { mp[p].second++; max_continue = max(max_continue, mp[p].second); } else { mp[p] = make_pair(i, 1); } } } cout << max_continue << endl; } return 0; }
|