1. 1. 暴力

暴力

暴力合并每个数和另一个数,算一下要加上多少才能符合。

看着时间复杂度很迷惑,实际上模板题跑的还是很快的。

不过可能又被卡的风险,据zhx说n越小越容易卡,不过顶多卡一个点(

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
32
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;

void Merge(int &b1, int &a1, int b2, int a2)
{
if(a1 < a2) swap(b1, b2), swap(a1, a2);
while(b1 % a2 != b2)
{
b1 += a1;
}
a1 = a1 / __gcd(a1, a2) * a2;
}
//a为模数,b为余数
signed main()
{
ios::sync_with_stdio(0), cin.tie(0);

int bstar = 0, astar = 1;
int b, a;
cin >> n;
for(int i = 1;i <= n;i++)
{
cin >> a >> b;
b%= a;
Merge(bstar, astar, b, a);
}

printf("%lld", bstar);
return 0;
}