0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AtCoder AGC040問題B 考察

Last updated at Posted at 2019-11-04

概要

AGC040(11/04 00:00 - 02:30) に参加したが問題Aしか解けなかったです。残り時間で問題B/Cも考えてみましたが、解法を思いつかず、時間切れ。で、復習で問題Bの解法をみてみたのですが、すぐに理解できない部分があったので考えてみました。結果としては理解できました(できたつもり)。Qiita、Overleafの練習も兼ねて備忘録的なメモを残します。

対象にした問題と解法で即時で咀嚼できなかったこと

対象にした問題はAtCoderのAGC040, B-Two Contests。解説はこちらAtCoderのAGC040 解説PDFにあります。
そのなかで即時で咀嚼できなかったのことの一つは以下の部分
スクリーンショット 2019-11-04 12.04.08.png
これをみて「『という形です』と言い切っているけど。うーん?それってそう言い切れるの?なんで?タイブレーク?」となるアルゴリズム弱々の私。

問題の単純化と言い換え

いろいろゴチャゴチャしてて考えにくいので問題を次のように置き換えて考えることにしました。
image.png

少し考えて、AGCの解説でいっている「この問題の解は。。。」の部分は上の問題でいうと以下のことをいっているのだとわかりました。
image.png

考察

上記の命題が正しいか図で直感的に考えてみました。上の問題は下のようなグラフで考えた時、
image.png

XY平面に存在するN個の点を2つの集合SとT に分け、Sについてのxの最大値X、Tについてのyの最小値をYとするときP=Y-Xを最大にするような集合S,Tを考えることに等しい。x=Xをグラフの縦点線、y=Yをグラフの横点線で考えると(X,Y)は縦横点線の交点になる。このとき青の点は集合Sに属さないと(X,Y)が変化する点、赤は集合Tに属さないと(X,Y)が変化する点、紫は集合S,Tのどちらに含めても(X,Y)に影響しない点になります。

点線が交差する点の右下の範囲$(x>X, y<Y)$の領域には点が存在できない(そのような点はS,Tのどちらに入れてもX,Yのいずれかが変化してしまう)ので、イメージとしては点の部分に釘があって、右下から三角定規を差し込んで、三角定規の直角の頂点をなるべく左上に差し込める点を探すといった雰囲気になります。

Y-Xが最大となる候補は例えば次のような分け方も候補になります。
image.png

つぎも候補といえば候補ですが明らかに図1のケースの方が評価が良いので選ばれる可能性はありません。
image.png

さて紫色の点はSとTのどちらに入れても目的とする値P=Y-Xはかわらないので、紫の点の数が0でない場合、同じY-Xを実現するSとTの組みわせは複数個あることになります。でも「紫のような点は全てSに含める」とすれば先ほどのような解法でY-Xの最大値を探せることがわかります。

所感

スキルが足りないので、解説に「〜〜です」といわれても、「え、なんで?」「必ずしもそうと言える?」などと感じる部分が多いです。解説のなかの「実は〜〜の部分は無視しても。。。」という部分も気にはなっているが追えてない。

修正

以下の部分まちがっていたで、「降順」を「昇順」に変更しました。もとのAGCとの問題とは符号が違うので逆になります。
image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?