bouzuya.hatenablog.com

ぼうずやのにっき

ARC011 A, B, C / 『ユースケース駆動開発実践ガイド』

ARC011 A, B, C 考察

arc011 A - 鉛筆リサイクルの新技術

m 本の使用済みの鉛筆から n 本の新しい鉛筆をつくって販売できる。最初 N 本を販売するとき最終的に何本の鉛筆を販売できるか。販売した鉛筆はすべて使用される。

1 回目の再利用を考える。 N 本が使用されて戻ってくる。 N >= m なら N / m * n 本の鉛筆を改めて販売できる。販売の総数は N + N / m * n になる。

2 回目は 1 回目の再利用の余りである N % m と改めて販売した N / m * n を合わせた N % m + N / m * n に対して >= m を調べて……と続ける。

n < m < N <= 1000 なので愚直にシミュレーションしても間に合う。

https://atcoder.jp/contests/arc011/submissions/16950443

arc011 B - ルイス・キャロルの記憶術

各単語は 30 文字で 1000 単語の単純置換なので愚直にシミュレーションしても間に合う。

母音のみからなる単語しかないときなどに改行を出力しそびれて 1 WA 。

https://atcoder.jp/contests/arc011/submissions/16951044

arc011 C - ダブレット

各単語を頂点・ 1 文字違いの単語間の繋がりを辺とした無向グラフにおける最短経路・経路復元を実装できれば良い。

単語とそれ以外の単語を選び前から順に一致する文字数を数える O(N^2) 。単語数は 1000 で各単語は 30 文字なので 1000 * 1000 * 30 微妙だけど間に合うはず。最短経路・経路復元は O(N^2) 未満のはず。

first last 間のつながりを考慮しそびれて 1 WA 。

https://atcoder.jp/contests/arc011/submissions/16959243


リングフィットアドベンチャーを続けている。


ユースケース駆動開発実践ガイド』をざっと読んだ。今週中に改めて読む。

ABC049 / 『怪盗グルーのミニオン大脱走』

ABC049 考察

abc049 A - 居合を終え、青い絵を覆う

aiueo なら vowel そうでなければ consonant 。

https://atcoder.jp/contests/abc049/submissions/16926199

abc049 B - たてなが

1 行ずつ走査して 2 回ずつ出力する。

https://atcoder.jp/contests/abc049/submissions/16926205

abc049 C - 白昼夢

前からだと区切りが難しそうなので後ろから読んでいずれかの単語に一致すれば読み進めていずれも一致しなければそこで打ち切る。

どこかで解いたことがあるような……。簡単そうで面倒くさい。

https://atcoder.jp/contests/abc049/submissions/16926351

abc049 D - 連結

道路で連結し鉄道でも連結しているものの個数を各要素ごとに調べる。連結成分を調べるには UnionFind が楽だ。道路と鉄道で 2 つの森をつくる。各要素ごとにペアとなる各要素を調べると間に合わない。各要素ごとの連結成分の番号のペアを持ってその出現回数を調べる。改めて各要素ごとに出現回数を出力すれば答えになる。

これが黄 diff ってことはないのでは……と思ってしまった。

https://atcoder.jp/contests/abc049/submissions/16926790


怪盗グルーのミニオン大脱走』を観た。悪いとまでは言わないのだけど 1, 2 と比べるとなんとなく話が面白くないように感じた。


リングフィットアドベンチャーを続けている。

2020-W38 ふりかえり

2020-W38 をふりかえる。

2020-W38 の目標 とその記事

目標。

  • ☐ 『ユースケース駆動開発実践ガイド』を 9 章まで読む
  • ☑ rust-memo v0.3.0 をつくる
  • ☑ Corne Chocolate を試す

記事。

つくったもの

よんだもの

なし。

ユースケース駆動開発実践ガイド』は 5 章まで読んだ。

みたもの

その他

勉強会。なし。

おでかけ。結婚記念日に近所の映画館へ。

ゲーム。リングフィットアドベンチャーを続けている。

買い物。 Google Home の壁掛け (2020-09-16) 。本を何冊か。 SwitchBot カーテンを買った。届いたらまた書く。

体調。涼しくなってきた。まだ大きな影響はない。体調を崩さないか心配だ。

育児。わざと泣くことが増えてきたように思う。冷凍庫から氷を取り出して食べている。冷凍庫は動かせないので困る。アイスを買ってきたのに食わず嫌いで一口も食べないことがある。おそらく一口食べたらもっと欲しがるだろう。


AtCoder 。連敗でレートを落としている。あと 26 問は AtCoder Problems の Recommendation に従って緑 diff の問題を解いていく。

結婚記念日に映画を観に行った。 TENET 良かった。

部屋の模様替えをした。衣類の棚の位置を別の部屋に変えた。たまに動かすことによる不要なものの削減・ルンバの再活用のための床面積の確保・導線の改善をねらいとしている。すっきりとした。

ユースケース駆動開発実践ガイドがぜんぜん進まなかった。興味のないものにはやる気が出ない。

Corne Chocolate は記事を書きそびれているけどおおむね快適に使えている。親指の内側の左右計 4 キーのキーキャップを MBK Choc Low-Profile Keycaps にすると角が痛かったのでそこは変えている。

2020-W39 の目標

模様替えなど

bouzuya/rust-memo v0.3.0 をつくった。登録している細かい Issue に対応してバージョンを上げただけだ。


ABC179 に参加した。連敗。

約数の個数を求める処理についてまた書く。


部屋を片付けた。棚の位置を変えたりした。

ARC026 A, B

ARC026 A, B 考察

arc026 A - ダイナミックなポーズ

できるだけ B を使うのが良い。 N が 5 以下ならすべて B なので B * N 。 5 より大きいなら B * 5 + A * (B - 5) で求まる。

https://atcoder.jp/contests/arc026/submissions/16810062

arc026 B - 完全数

約数の列挙は O(√N) (2020-04-06) 。 N <= 10^10 でも間に合う。約数の和を取り N 自身を除いて比較すれば答えを得られる。

https://atcoder.jp/contests/arc026/submissions/16810090


今日は映画を観に行く (2020-09-15) つもりだ。バタバタしそうなので昼にブログを書いている。

リングフィットアドベンチャーと上記 AtCoder の問題は朝に進めた。どちらも続けている。

CODE FESTIVAL 2016 qual C A, B, C

CODE FESTIVAL 2016 qual C A, B, C 考察

code-festival-2016-qualc A - CF

先頭から 'C' を探して見つかったらそこから 'F' を探す。どちらも見つかれば Yes それ以外は No

https://atcoder.jp/contests/code-festival-2016-qualc/submissions/16804184

code-festival-2016-qualc B - K 個のケーキ

嘘解答っぽいけど AC した。

2 種類のケーキがあるときは交互に食べれば同じ種類のケーキを食べる日数は増えない。ソートして前と後ろから取っていくと残った数 - 1 が答えになる。答えが負の数になるときは 0 にする。

いま考えるとそのときどきの大きい数をつぶさないといけないような気がするのだけど ↑ で AC する。

https://atcoder.jp/contests/code-festival-2016-qualc/submissions/16804509

code-festival-2016-qualc C - 二人のアルピニスト

T_{i-1} < T_i のとき h_iT_i で確定する。 A についても逆向きに走査することで確定していける。 T の走査で確定した箇所について A の確定分との不一致や A_iT_i よりも小さいなどの矛盾があれば 0 で抜ける。

あとは個数を求める。確定している箇所は 1 通りで確定していない箇所は MIN(T_i, A_i) 通りの選択肢がある。すべてを 1_000_000_007 で mod を取りつつかけあわせれば答えになる。

https://atcoder.jp/contests/code-festival-2016-qualc/submissions/16805182


cargo-atcoder で html の parse error が出ていて時間を浪費した。

https://twitter.com/emanon001/status/1306589430296182784 で直った。


リングフィットアドベンチャーを続けている。

DISCO presents ディスカバリーチャンネル コードコンテスト 2020 予選 A, B, C

DISCO presents ディスカバリーチャンネル コードコンテスト 2020 予選 A, B, C 考察

ddcc2020-qual A - DDCC Finals

XY それぞれで 1, 2, 3 位のときの賞金を計算し XY がともに 1 位なら追加の賞金を加算して求める。

https://atcoder.jp/contests/ddcc2020-qual/submissions/16786208

ddcc2020-qual B - Iron Bar Cutting

左右の両端からの和をそれぞれ求めていく。和の小さい側を伸ばすようにして進めて中央でぶつかるまで繰り返す。最後にそれらの差の絶対値を求めると答えになる。

想定解は累積和の差の最小値を求めると良いらしい。確かにそうだ。

https://atcoder.jp/contests/ddcc2020-qual/submissions/16786415

ddcc2020-qual C - Strawberry Cakes

2 WA 1 RE 。

まず行で見る。イチゴのある行は最初のイチゴを除いて次のイチゴに当たるまで同じ数字をふれば良い。最初のイチゴまでは最初のイチゴと同じ数字にしておく。

イチゴのない行は上か下の行と同じ数字にしておけば良い。連続している場合の走査と上端または下端が扱いにくいけど気合でなんとかなる。

https://atcoder.jp/contests/ddcc2020-qual/submissions/16787310


Google Home を壁にかけるためのものを買った。コンセントにぶら下がる形になる。すっきりした。ただ壁にかけるだけなら裏に穴があったので釘か何かで十分だったように思う。


リングフィットアドベンチャーを続けている。