女生求调 WA 70pts(附代码格式化器)

P4774 [NOI2018] 屠龙勇士

@[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


上一页 | 下一页