@[WA_Coding_Duck](/user/766675) 你主页广告有点问题,那个人对我的年龄判断有点离谱
by QAQ__ @ 2023-05-26 22:34:14
@[QAQ__](/user/627636) az,但是他对我和我同学都是对的...
by da_ke @ 2023-05-26 22:44:10
@[WA_Coding_Duck](/user/766675) 哦,他说只有xxs容易判断。
by QAQ__ @ 2023-05-26 22:44:41
@[QAQ__](/user/627636) 我的编译器自带代码格式化,是什么成分?
by Kasa_ @ 2023-05-26 22:56:54
@[Kasa_](/user/941962) 是这样的,我[上一次求调另外一个题的时候](https://www.luogu.com.cn/discuss/609450),有人说“懒得搞”。
by QAQ__ @ 2023-05-26 22:58:52
我每次发个帖,下面 90% 的回复都是跟码风有关的。希望不要再有人讨论码风了。
by QAQ__ @ 2023-05-26 22:59:34
@[QAQ__](/user/627636) 下次数组名太多可以用 kaka
正在看,不保证能调出来
by ragwort @ 2023-05-26 23:09:00
先贴个正常码风
```cpp
#include <algorithm>
#include <iostream>
#define int long long
#define i128 __int128
using namespace std;
const int N = 100005;
int a[N], p[N], qwasd[N], TLEWA[N], pref[N*2], rzh123[N], sol[N], qwq[N], QAQ[N], awa[N];
i128 x, y, t, ans;
i128 exgcd(i128 a, i128 b){
if (!b) {
x = 1,y = 0;
return a;
}
ans = exgcd(b, a % b);
t = x,x = y;
y = t - a / b * y;
return ans;
}
int query(int x){
int summ = 0;
while (x) {
summ += pref[x];
x -= x & -x;
}
return summ;
}
void addd(int x, int v){
while (x <= 200000) {
pref[x] += v;
x += x & -x;
}
}
int kth(int v){
int ans = 0, seele = 0;
for (int i = 26; i-- > 0;) {
ans += 1 << i;
if (ans > 200000 || seele + pref[ans] >= v)
ans -= 1 << i;
else seele += pref[ans];
}
return ans + 1;
}
signed main(){
int t, n, m, d, seele, AK, IOI, maxx;
bool flag;
cin >> t;
while (t--) {
flag = false;
cin >> n >> m;
for (int i = 1; i <= n; i++)
cin >> a[i];
for (int i = 1; i <= n; i++)
cin >> p[i];
for (int i = 1; i <= n; i++)
cin >> qwasd[i], qwq[i] = qwasd[i];
for (int i = 1; i <= m; i++)
cin >> TLEWA[i], qwq[i + n] = TLEWA[i];
for (int i = 1; i <= n; i++)
flag |= a[i] > p[i];
sort(qwq + 1, qwq + 1 + n + m);
for (int i = 1; i <= n; i++)
QAQ[i] = lower_bound(qwq + 1, qwq + 1 + n + m, qwasd[i]) - qwq;
for (int i = 1; i <= m; i++)
awa[i] = lower_bound(qwq + 1, qwq + 1 + n + m, TLEWA[i]) - qwq;
for (int i = 1; i <= 200000; i++)
pref[i] = 0;
for (int i = 1; i <= m; i++)
addd(awa[i], 1);
for (int i = 1; i <= n; i++) {
rzh123[i] = kth(max(query(lower_bound(qwq + 1, qwq + 1 + n + m, a[i]) - qwq), 1ll));
addd(rzh123[i], -1);
rzh123[i] = qwq[rzh123[i]];
addd(QAQ[i], 1); /*cout << rzh123[i] << ' ';*/
} //cout << endl;
if (flag) {
maxx = 0;
for (int i = 1; i <= n; i++)
maxx = max(maxx, (a[i] + rzh123[i] - 1) / rzh123[i]);
cout << maxx << endl;
continue;
}
flag = false;
for (int i = 1; i <= n; i++) {
if (a[i] % (d = exgcd(rzh123[i], p[i]))) {
flag = true;
continue;
}
(x *= a[i]) /= d;
(y *= a[i]) /= d;
AK = p[i] / d;
IOI = rzh123[i] / d;
if (x > 0) {
seele = x;
x = (x - 1) % AK + 1;
y += ((seele - 1) / AK) * IOI;
} else {
seele = x;
(x %= AK) += AK;
y -= (-(seele / AK) + 1) * IOI;
}
sol[i] = x;
}
if (flag) {
cout << -1 << endl;
continue;
}
i128 r1, r2, m1, m2, p1, p2, l1, l2, k1;
for (int i = 1; i < n; i++) {
r1 = sol[i], r2 = sol[i + 1], m1 = p[i], m2 = p[i + 1], d = __gcd(m1, m2), flag |= (r2 - r1) % d;
if (flag)
break;
p1 = m1 / d, p2 = m2 / d, exgcd(p1, p2), l1 = x, l2 = y, k1 = (r2 - r1) / d * l1, sol[i + 1] = r1 + k1 * m1 % ((m1 * m2) / __gcd(m1, m2)), p[i + 1] = (m1 * m2) / __gcd(m1, m2);
((sol[i + 1] %= p[i + 1]) += p[i + 1]) %= p[i + 1];
}
cout << (flag ? -1 : sol[n]) << endl;
}
return 0;
}
```
by ragwort @ 2023-05-26 23:11:08
@[WA_Coding_Duck](/user/766675) 我也是女孩纸~
by sundyLIUXY @ 2023-05-27 09:17:38
好好的调代码,咋开始讨论性别了?
by _really_myself_ @ 2023-05-27 10:17:27