DOJ logoDOJ
問題
最近追加された問題保存した問題Workbooks
カテゴリDLCコンテストグループチーム掲示板
ランキング
正解数ランキングストリークランキングDOJ Powerランキング
提出状況
問題募集ログイン新規登録
DOJ logoDOJ

OI形式のサブタスク採点、Eloレーティング、Discord連携を備えたオンラインジャッジです。

問題
問題一覧カテゴリ
コミュニティ
コンテストランキング掲示板お知らせ外部のコンテストを開催するガイド
アカウント
ログイン新規登録ジャッジ状態
ポリシー
利用規約DLCの利用規則プライバシーAPI 文書言語ランタイムコンテストの順位報酬レーティングとパフォーマンス
© 2026 DOJ
All rights reserved
解説

Choosing Column Prefixes

問題に戻る

解説

PjP_jPj​를 111 늘릴 때 새로 더해지는 값은 APj+1+BjA_{P_j+1}+B_jAPj​+1​+Bj​이다. AAA가 내림차순이므로 각 열에서 더 위에 있는 값을 고르지 않고 아래 값을 고르는 일은 최적해에 필요하지 않다. 따라서 전체 N2N^2N2개의 값 Ai+BjA_i+B_jAi​+Bj​ 중 큰 것 KKK개를 고른 합이 답이다.

어떤 정수 xxx 이상인 쌍의 개수는 BBB를 정렬한 뒤 각 AiA_iAi​에 대해 이분 탐색하여 O(Nlog⁡N)O(N\log N)O(NlogN)에 셀 수 있다. 개수가 이상인 가장 큰 를 찾는다. 그 뒤 보다 큰 모든 쌍의 합을 구하고, 부족한 개수만큼 를 더한다. 합은 64비트 정수 범위를 넘을 수 있으므로 128비트 정수를 사용해야 한다.

KKK
xxx
xxx
xxx