六省联考2017 問題の解法

P3745 [六省聯考 2017] 期末試験 m 種の試験があり、各試験 i は第 b_i 日に成績が発表される予定である。n 人の学生が成績を待っている。学生 i は第 t_i 日までにすべての成績を知りたいと思っている。最終的に最も遅く成績が出る試験の日を T とする。以下の3種類の不快度が生じる。 各学生は C × max(T - t_i, 0) の不快度を負担する。 試験 x を1日遅らせて試験 y ...

10月6日 06:50 投稿

解答:P5500 [LnOI2019] 真正的 OIer 从不女装

問題の解法 クエリを直接見ると、\(k=0\) の場合、区間の最大連続部分列を維持すればよい。 \(k=1\) の場合を考える。 元の配列: .>>!|&>>? 変更後: !<<.|?<<& 見にくい?回転してみる:(答えは変わらない) &>>?|.>>! 気づいたか?区間の切り替えは二つの部分を交換することと等価である。つまり、先頭と末尾が同じ ...

8月14日 20:37 投稿

牛客周赛 Round 69 問題解説

Cの構築問題 解法 AとBの絶対差と最大値の和を取ることで、第三項を構築できます。 コード #include <bits/stdc++.h> using namespace std; using i64 = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int a, b; cin >> a >> b; int d = abs(a - b); cout << max(a, b) + d << &q ...

7月20日 03:34 投稿

線分木を使用した複雑な操作の実装

この問題では以下の4つの操作を実装する必要があります: 操作1: 結果にaを加算 操作2: 結果からaを減算 操作3: 結果にaを乗算 操作4: 結果にa * Xを加算 これらの操作を効率的に処理するために、線分木を使用します。線分木は区間最大値と最小値、加算の遅延評価タグ、乗算の遅延評価タグ、代入の遅延評価タグ、および操作4用の遅延評価タグを管理します。 木の構築 通 ...

6月12日 18:13 投稿