/
最近
.rdf
追記
編集
設定
本棚
翌日へ
前日へ
脳
l
o
g
[
2
0
2
3
0
7
0
9
]
2
0
2
3
年
0
7
月
0
9
日
(
日
)
[
A
t
C
o
d
e
r
]
今日は
A
R
C
1
6
4
があ
った
。
くやちい
。
C
問題が
A
C
だ
ったのがくやしい。
コンテ
ス
ト成績表
。
自分のすべての提出
。
以下
A
B
C
のふりかえり
。
■
A
問
題
「
T
e
r
n
a
r
y
D
e
c
o
m
p
o
s
i
t
i
o
n
」
。
とりあえず3進数を考えま
す。
純粋な3進数と違うところは
、
各桁の上限が2に限られないということ
。
どういうこと
か
。
n
=
9
のとき
、
3
^
0
×9個が
k
の上限で
、
3
^
2
×1個が
k
の下限
。
もうち
ょ
っと書くと下限は3進数で表したときの各桁の和
。
その範囲外なら
N
o
。
範囲内であれば
、
ある桁を崩して1つ下の桁を3個増やすことができる
。
つまり2個ずつなら調整が可能
。
奇数個の調整は不可能
。
■
B
問
題
「
S
w
i
t
c
h
i
n
g
T
r
a
v
e
l
」
。
白黒白黒……とパスを辿
ってい
ったとき
、
白白もしくは黒黒の辺によ
って閉路が生じるなら答えは
Y
e
s
だと思
った
。
それを
B
F
S
で実装したら
W
A
だ
ったので
U
n
i
o
n
F
i
n
d
で実装し直して
A
C
にな
った
。
何が悪か
ったのかはわからない
。
嘘ですわかりま
す。
白黒の辺だけを考えるときグラフが連結だとは限らないので一応すべての頂点を始点にして
B
F
S
をしたのだけど
、
訪問済みフラグを流用していた
。
だから白白もしくは黒黒の辺で訪問済みの頂点にぶつか
ったとき
、
それが異なる連結成分を結んでいるのか閉路なのか区別できなか
った
。
N
回
N
要素の配列を確保することが許されないので流用したのだけど
、
訪問済みフラグの値を工夫しないといけなか
ったらしい
、
B
F
S
/
D
F
S
でやるならね
。
ほら
W
A
→
A
C
■
C
問
題
「
R
e
v
e
r
s
i
b
l
e
C
a
r
d
G
a
m
e
」
。
B
問題の
A
C
から1時間弱の時間が残
っていたのだけど
、
ほぼほぼ途方に暮れていた
。
何が最適な戦略なのかさ
っぱりだ
った
。
終了
1
0
分前くらいから書き始めたのはこういうの
。
まずカ
ー
ドを裏が大きい
(
A
≦
B
)
と表が大きい
(
A
>
B
)
で分ける
。
裏が大きい
(
A
≦
B
)
カ
ー
ドについては何もすることがない
。
だ
ってね
、
全部のカ
ー
ドが
A
≦
B
だ
ったとしよう
。
B
o
b
は
A
l
i
c
e
が引
っ繰り返したそばからカ
ー
ドを得点に変えていくのが最善
。
だから他にカ
ー
ドがあるときに
A
l
i
c
e
はひ
っくり返さないし
、
B
o
b
もまだ取らない
。
では
A
>
B
のカ
ー
ドについてはどう
か
。
これは
A
-
B
が大きい順に
A
l
i
c
e
が
A
を隠す
(
裏が大きいカ
ー
ドに混ぜる
)
、
B
o
b
がカ
ー
ドを得点にするということを繰り返
す。
表が大きいカ
ー
ドが1枚だけ余
ったらうまいこと考える
。
それがサンプルの1
。
なんで終了6分半後に
A
C
だ
ったんだよ
ー
。
■
C
問題はも
っと単純だ
ったらしい
。
「
B
の大きいペア数が奇数のときは
、
1
枚だけ低い値をとらされるようだ
。
低い値は何を取らされる?
A
l
i
c
e
がどうがんば
っても
、
B
o
b
は最もリスクの低いカ
ー
ドを選ぶことができるようだ
。
a
b
s
(
B
-
A
)
が最も小さいカ
ー
ドを選べばいい
。
」
言われればそう
。
A
l
i
c
e
が裏返して隠した表が大きいカ
ー
ドも
、
後半戦で裏返すそばから
B
o
b
に得点に変えられてしまうのだから
。
翌日へ
前日へ