2023/2/9(木)

最近生活が乱れているので一応早起きした。作業は進まない。


今日解いた競プロの問題。

ARC155-C: 自力AC。場合分けの化け物みたいな問題だった。

まず最初に、3つ並んだ数が「すべて偶数」もしくは「1つ偶数、2つ奇数」のどちらかでない限り動かせないことがちょっと考察すれば分かる。

「1つ偶数、2つ奇数」となる箇所を「奇数対」と呼ぶことにする。奇数対が1か所でもある場合、これは自由に移動できるしスワップもできることが分かる。どこかしらが奇数対であれば(偶数を1つでも持っていれば)3つ組以上にすることも可能。ただし奇数対を別れさせて孤立した2つの奇数にすることだけはできないので注意。奇数の3つ組を孤立した奇数1つと奇数対に分離する、といったことなら出来る。つまり、奇数対を用いて変形する場合は変形後に最低1つの奇数対を残すことが分かる。

偶数はどうとでもなりそうな感じがするが、2つしかない場合は入れ替えられないことに注意。

  1. 最初から一致ならOK。
  2. ソートして合わないならどう並べ替えても合わないのでNG。
  3. 全て偶数なら自由に並べ替えられるのでOK。並べ替えて一致することは2で確かめている。
  4. 全て奇数なら動かせないのでNG。最初から一致してはいないことは1で確かめている。
  5. 奇数対がA,B双方に1つ以上ある場合、偶数が2個しかない場合を除いて自由に動かせる。
    • 偶数が2個かつA,Bで順序が一致しないならばNG。
    • そうでないならばOK。偶数が2個でも位置は自由に動かせる。
  6. A,Bの片方にしか奇数対が存在しないならばNG。奇数対は全て消したり無から作ったりは出来ない。
  7. A,Bともに奇数対が存在しない(=孤立した奇数しかない)場合、奇数は一切動けず、偶数は奇数を飛び越えられない。
    • 奇数の位置・値がA,Bで一致するかを検証して一致しないならNG。
    • 一致する場合、奇数に挟まれた各偶数の塊が一致するかを検証する。2個だけの偶数は入れ替えられないので、3個以上の塊のみソートして集合として比較する。全て一致するならOK。一致させられない塊があればNG。

Recursedが進まん。一応ダイヤを1つ2つ取ったが、全ダイヤ取得の実績は解除されない。実績の記述からしてOobleckにはまだダイヤがあるっぽいのだが、原理的にパラドックスが起きそうなところがない。Enchantくらい?それも望み薄。

エクストラステージ(Continued…)を進めるしかなさそう。

Categories: