T on #2 悬一关
查看原帖
T on #2 悬一关
908424
Walrus楼主2024/1/25 18:52

rt,本地 OJ 跑得飞快,到这就 T 了。

#include <bits/stdc++.h>
#pragma GCC optimize(2)
#define int long long
using namespace std;

const int N = 2e5 + 5;

struct node {
    int a, b, sum;
#define sum(p) t[p].sum
#define a(p) t[p].a
#define b(p) t[p].b
} t[N];

int _, n, l, r, ans;

void init() {
    memset(t, 0, sizeof t);
    ans = 0;
}

inline int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }

inline int lcm(int a, int b) { return a / gcd(a, b) * b; }

signed main() {
    // freopen("sugar.in", "r", stdin);
    // freopen("sugar.out", "w", stdout);

    ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);

    cin >> _;
    while (_--) {
        init();
        cin >> n;
        for (int i = 1; i <= n; ++i) cin >> a(i) >> b(i), sum(i) = a(i) * b(i);

        int Gcd = sum(1), Lcm = b(1);
        for (int i = 2; i <= n; ++i) {
            Gcd = gcd(Gcd, sum(i));
            Lcm = lcm(Lcm, b(i));
            if (Gcd % Lcm)
                ++ans, Gcd = sum(i), Lcm = b(i);
        }
        cout << ans + 1 << '\n';
    }
    return 0;
}
2024/1/25 18:52
加载中...