今日の競プロ(2020/4/8) + Codeforces Round #632 (Div. 2)
JOI 8問
Codeforces 4問 rating : 1900→1940 (+40)
JOI2014本選 A - JOI紋章(JOI Emblem)
縦2行、横2列の領域は全部で個あるが、そのうち変更の影響を受けるのは高々4つ。よって、どの箇所をどの文字に変更するか全通り試せる。
JOI2014本選 B - IOI饅頭(IOI Manju)
個の饅頭を売るときの利益の最大値は、(饅頭を
個選んだときの饅頭の価格の最大値)
(饅頭が
個以上詰められるように箱を選んだときの箱の価格の最小値)。前者は貪欲、後者はナップザックみたいなDPで求められる。これを
で計算して最大値をとる。
JOI2016予選 D - JOI国のお散歩事情 (Walking in JOI Kingdom)
苦手系で絶対バグらせると思ったけど一発で通って嬉しい。解法を日本語で説明するのが難しい…。
JOI2016本選 A - オレンジの出荷 (Oranges)
「個目のオレンジまでみて、今使っている箱に
個のオレンジが入っているときのコストの最小値」でやったら地獄を見た。こういうのは練習して掴んでいくしかないな〜〜。
JOI2016本選 B - スタンプラリー 2 (Collecting Stamps 2)
適切に前計算しておけば、新しく出店したときに 'J' 'O' 'I' の選び方がどれだけ増えるかは一瞬で求まる。
JOI2017本選 A - フェーン現象 (Foehn Phenomena)
いもす法のイメージそのまま。標高そのものは忘れて、隣り合う地点の標高差だけ覚えておけばいい。のときに注意…。
JOI2019予選 D - 日本沈没 (Japan Sinks)
海面が上がっていく様子を絵を描いたらわかりやすかった。
適当に圧縮してとしてよい。海面の高さが
に到達したとき、
なら島の数が
増える
なら島の数が
減る
JOI2020本選 A - 長いだけのネクタイ (Just Long Neckties)
はじめに付けているネクタイが長い人ほど長いネクタイを、短い人ほど短いネクタイを試着してもらう。
Codeforces Round #632 (Div. 2) A - Little Artem
市松模様に塗る。が偶数のときは 'W' を一マス選んで 'B' にすればOK。
Codeforces Round #632 (Div. 2) B - Kind Anton
のとき
の中に
があればOK。
のとき
の中に
があればOK。
Codeforces Round #632 (Div. 2) C - Eugene and an array
Zero-Sum Rangesの要領で累積和を考える。数列を
とすると、
のsubarray
の和は
と表せる。つまり
は
と言い換えられ、求めるべきは
のsubarrayのうち同じ値を含まないものの個数。これは尺取り法でできる。
Codeforces Round #632 (Div. 2) D - Challenges in school №41
- "RL"と並んでいる子どもを入れ替えて"LR"にする
- 最終状態は LL...LLRR...RR
これと同じ感じでやる。73分かけてもうて反省…。
コメント
JOI難易度6埋まりました。次は7頑張る〜〜