Codeforces Beta Round #42 (Div. 2) 参加記

総合2位(・∀・)!

A. Football

試合に勝ったチーム名が渡され、一番勝った回数が多いチームが優勝。優勝したチームを求める問題。


やるだけ。
00:04 492 Accepted.

B. Letter

新聞紙の文字を切り抜いて、脅迫文みたいな手紙を作る。
1行目が新聞紙の文字列、2行目が作りたい手紙。手紙が作れるか判定する問題。


各文字の出現回数を数えておいて、手紙の文字を引いていくだけ。
00:09 964 Accepted.

C. Lucky Tickets

3の倍数になる数字が書かれている紙を、2つに破られた。
2つの切れ端をくっつけることで、これを復元したい。
復元したものが3の倍数になっていれば、とりあえずよしとする。
復元できる枚数の最大値を求める問題。


各桁の合計が3の倍数になっていれば、その数自体は3の倍数になっているので、
渡された切れ端の各桁の合計を3で割ったあまりごとの枚数を保持しておいて、以下のように復元する。
・余り0→余り0の切れ端をくっつける
・余り1→余り2の切れ端をくっつける
余り0の切れ端は、単に余り0の枚数を2で割ればよく、
余り1や余り2の切れ端は、どちらか少ない方の枚数だけ復元できる。
00:16 1404 Accepted.

D. Journey

n×m のマップあがって、左上にお城がある。お城を出発して、全てのマスを巡り、
再びお城に帰りたい。ただし、1つのマスは1回しか巡らない。
このとき、お城に帰れないパターンが存在するので、その場合はテレポートマスを
作ることができる。
必要なテレポートマスの数、テレポートマスがどこからどこへテレポートするのか、
そして巡る座標を順番に求める問題。


撃墜祭りでした。
1x1、1x2、2x1、1xN、Mx1に関しては、特に注意が必要で、別個に処理を書いてもいいと思います。
後のケースについては、どちらかが偶数であればテレポートマスは必要なく、
両方とも奇数のときは、右下の座標から左上のお城に向かうテレポートマスを1つ用意して、
後はうねうねと走査するだけです。
00:54 Accepted.
01:15 Hacked.

E. Race

レースのお話。走る車の数と、コースの距離が与えられる。
更に、それぞれの車が走る速度と、その速度で走る時間が k 個与えられる。
ある車が別の車を追い越す、といった場面が何回現れるか求める問題。


各時間における各車の位置を求めておいて、
後は i 番目の車が j 番目の車に対して、追い越す回数+追い越される回数を計算するだけ。
単純に実装すると、100*100/2*100000=500000000となり、かなり実行時間に不安を覚えるけど、
なんとかTLEせずに間に合ったみたい。
01:19 Accepted.

After System Test

oooxo +12/-1 5720
2位 1486 -> 1668
いきなり黄色になってしまった。(次回で青に落ちるんだけど。)