[CF1798C] Candy Store 题解
aeiouaoeiu · · 题解
因为整个序列都要被划分,且显然这个区间长度具有单调性,于是考虑一段区间
显然,
如果觉得太跳跃了,可以从质因子角度出发,对于一个质数
然后直接维护
::::info[code]
#include<bits/stdc++.h>
#define pb emplace_back
#define mp make_pair
using namespace std;
typedef unsigned long long ll;
typedef __int128 LL;
const ll maxn=200007,ee=1e18;
ll n,a[maxn],b[maxn],g,l,ans;
int main(void){
//freopen("data.in","r",stdin);
//freopen("data.out","w",stdout);
ios::sync_with_stdio(0),cin.tie(0);
ll T=1; cin>>T;
for(;T--;){
cin>>n,ans=1,g=0,l=1;
for(ll i=1;i<=n;i++) cin>>a[i]>>b[i];
for(ll i=1;i<=n;i++){
g=__gcd(g,a[i]*b[i]),l=l*b[i]/__gcd(l,b[i]);
if(g%l) ans++,g=a[i]*b[i],l=b[i];
}
cout<<ans<<"\n";
}
return 0;
}
::::