D = Array.new(11){[0]*(1<<10)}
の部分。幅 10 のビットフラグが 10+1 個分。コンテストの種類は 10 なんだけど、余分な +1 を 10 個の合計の記録用に確保した(Ds = D[-1]
)。というのは、最後に出たコンテストの区別は現在のコンテストと同じか異なるかという二値で十分なのに、異なるものが9個に分かれてると集計が面倒だから。あとはコンテストの回を追って、参加した場合参加しなかった場合を数えていくだけ。■これは自分が DP を知らなかった昔に DP と知らずに書いたのと同じ形>20120214p01.02。Project Euler の 191 問目だった。x*0.10m
を x*税率
にするのも 消費税額(x)
にするのも、名前を付けているという点で同じ。名付ける対象がデータか手続きかという違いはあるし、それを定数で定義するか関数で定義するかという違いもあるけど、static メソッドでアクセスするシングルトンオブジェクトがグローバル変数と同じなのと同じ程度には同じ。■2つあるブコメにもそれぞれ一理はあって、「変更があるものは定数化した方がいい気がします.....」は、それはそう。ただし設定項目の一部であったりしてプログラムとは別のサイクルで変化する場合や、変更が複数箇所に及ぶ場合に当てはまる話であって、同じソースコード上にある現状であれば、定数定義を1か所変更することになるか関数定義を1か所変更することになるかという違いは、どうでもよくない? 「
例がよくない。例示している消費税率はソースの至る所に存在するようになり、定数化しておくと法律が変わり修正が必要なときに修正漏れを抑えることができる。1度しか使わない値を定数化など何でもするはよくない。」というのも、それはそう。当たり前のことをこの記事に対してコメントするのはなぜか。たぶん記事の中の
消費税額
関数を否定はしていなくて、だけど 0.10m
というマジックナンバーを利用する場所が絶対に 消費税額
関数1つにとどまらないだろうことを見越して「例が良くない」と言っているのだと思う。医師の診察・説明を受け、接種の効果や副反応などについて理解した上で、接種を希望しますか。」 もうひとつの解釈もあるなと思った。つまり、東工大生の解釈は「(医師の診察・説明を受け、理解しました。) 接種を希望します。」なんだけど、(たぶん想定されない)別解釈は、「(医師の診察・説明を受け、理解した場合には) 接種を希望します。」 だからまあ、先んじて希望することを表明しておいて、医師が診察・説明を正しく履行することを確かめるつもりでいれば、揉めないでもいいんじゃないかなと。方便だけど。■自分は名簿とボールペンを前にした状況で、「おなまえよろしいですか」と言われた瞬間に (え? 名前が、宜しい? それってどういう。何が Yes で何が No ?) と不可解な言葉の解釈に囚われてフリーズした(東工大生ではない)人間だけど、昔の話。
× A
を割り振ればいい。一般化すると、すべての数を A^b
の形で表して、b 乗の部分が平らになるように B 個の × A
を分配する。一発 AC!>提出 #25492066。だが時間をかけた。これが虚無埋めならわざわざ日記に「解けたぞ わーい」って書いてないからね。