今日の競プロ(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頑張る〜〜