差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
programming_algorithm:contest_history:atcoder:2019:0323_agc032 [2019/04/21] ikatakosprogramming_algorithm:contest_history:atcoder:2019:0323_agc032 [2019/04/21] (現在) – [解法] ikatakos
行 424: 行 424:
         `--'  |     `-----'  |     `--'         `--'  |     `-----'  |     `--'
  
-ある2通りのペアの組み方 $A,B$ があって、醜さの最大値の比較で $Z_A \le Z_B$ と言うためには、 +ある2通りのペアの組み方 $P,Q$ があって、醜さの最大値の比較で $Z_P \le Z_Q$ と言うためには、 
-「$A$ の全てのペアについて、それぞれ、より醜さが大きいペアが $B$ に存在する」ということが言えればよい。+「$P$ の全てのペアについて、それぞれ、より醜さが大きいペアが $Q$ に存在する」ということが言えればよい。
  
 すると、$C$ のペアは、 すると、$C$ のペアは、
行 438: 行 438:
 </WRAP> </WRAP>
  
-ただ、先ほどの例だと $Z=9$ になる。$M=10$ なので、答えとなり得る値の中で最大であり、そのまま適用するのはあまり有効そうではない。$\mod{M}$ を有効活用したい。+ただ、modを含めて考えると、先ほどの例だと $Z=9$ になる。$M=10$ なので、答えとなり得る値の中で最大であり、そのまま適用するのはあまり有効そうではない。
  
 ところで、各数字は $0 \le a_i \lt M$ なので、2つ足しても $2M$ を超えることはない。「和が $M$ を超えるペア」のスコアは必ず「2数の和$-M$」である。つまり、「和が $M$ を超えるペア」同士の間では、2数の和がそのまま大小比較に使える。 ところで、各数字は $0 \le a_i \lt M$ なので、2つ足しても $2M$ を超えることはない。「和が $M$ を超えるペア」のスコアは必ず「2数の和$-M$」である。つまり、「和が $M$ を超えるペア」同士の間では、2数の和がそのまま大小比較に使える。
行 525: 行 525:
 $a_1,a_2,...$ をソート後、真ん中に境界を仮定して、分類の成立を調べる。 $a_1,a_2,...$ をソート後、真ん中に境界を仮定して、分類の成立を調べる。
  
-  * 成立、$M$ 未満グループが不成立(和が $M$ 以上のペアが出来てしまう)なら左半分から境界を探索+  * 成立、または $M$ 未満グループが不成立(和が $M$ 以上のペアが出来てしまう)なら左半分から境界を探索
   * $M$ 以上グループが不成立(和が $M$ 未満のペアが出来てしまう)なら右半分から境界を探索   * $M$ 以上グループが不成立(和が $M$ 未満のペアが出来てしまう)なら右半分から境界を探索
  
行 533: 行 533:
   ... a ... b ... | ... c ... d ...   ... a ... b ... | ... c ... d ...
      
-  ソート順: a <= b <= c <= d       =>  a+b <= c+d +  ソート順:   a <= b <= c <= d       =>  a+b <= c+d 
-  成立条件: a + b >= M、c + d < M  =>  a+b >  c+d+  成立条件: a + b >= M、c + d < M  =>  a+b >  c+d
  
 <sxh python> <sxh python>
programming_algorithm/contest_history/atcoder/2019/0323_agc032.txt · 最終更新: 2019/04/21 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0