P9413 风屿
P9413 「NnOI R1-T2」风屿
题外话
这一题定义得花里胡哨的。
题意简述
构造一个
题目分析
首先考虑搜索,可以用 dfs 或 bfs 求一个连通块的大小,再统计答案,时间复杂度为
观察样例我们注意到,因为
所以这题的做法是就
代码
由于有相乘,所以可能会爆 int,要开 long long。
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5+5;
int t, n, m, ans1, ans2, a[N], b[N];
signed main() {
cin >> t;
while (t--) {
cin >> n >> m;
int c = 1, l = 1, len = 1;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
if (i == 1) continue;
if (a[i] == a[i-1]) ++len;
else len = 1;
if (len > l) l = len, c = 1;
else if (len == l) ++c;
}
ans1 = l, ans2 = c;
c = 1, l = 1, len = 1;
for (int i = 1; i <= m; ++i) {
cin >> a[i];
if (i == 1) continue;
if (a[i] == a[i-1]) ++len;
else len = 1;
if (len > l) l = len, c = 1;
else if (len == l) ++c;
}
ans1 *= l, ans2 *= c;
cout << ans1 << ' ' << ans2 << '\n';
}
return 0;
}