YouTubeEに嘘解法があったらしいとはいえ、A~Eを60分で200位、100分で360位はなかなか参加者レベルのインフレを感じる。日まであと10日の段階で、11日後以降に報酬が得られるバイトを受けても意味が無い。ものしか受ける意味が無いので、その中から報酬最大のものを受けるのがよい。明日受けると決めたものを除いた中から報酬最大のものを受けるのがよい。このように、制約が強い後ろの日から考える。バイトに新しく受ける意味が発生するので、候補に加える候補から、報酬最大のものを受けると決めて、候補から除くという処理を繰り返すとよい。この候補リストには、最大値を得る優先キューが使える。キューが空になった時などの例外処理に注意。へは到達可能であることが保証される解法ボタンを押した時に引かれるポイントは通過した辺の数に依存するので、辺ごとにコストに含めてしまってよい。今回のように最大値を求めたい場合は正負逆転して考える。到達できない箇所にある負の閉路は、最終的にボタンを押せないので、関係ない最小コストを求めるには、リンクに負のコストが現れるのでDijkstraは使えず、Bellman-Fordを使うことになる。$O(V^3)$Bellman-Fordは負の閉路があった場合に検出できる。行けるか?」を確かめる必要がある。以下の2つの方法が考えられる。到達可能か調べる1から到達できない閉路は、Bellman-Fordでも検出されないので特別な考慮の必要は無い。個あるので、行列として考えて、掃き出し法で解ける。行列の各行が全て等比数列の場合に特化した研究があるらしく、ヴァンデルモンドの行列式というらしい。求められるので、間に合う。いうか上記Wikipediaの「応用」で述べられていることが、そのまま問題となっている。具体的な逆行列の求め方は、英語版のVandermonde_matrixあたりに載ってそう?(未確認)で、この解法はまあ知ってるか知ってないか感が強くて、思いつくのは厳しい。今回の場合は、もう少しヒラメキ寄りの解法が使えて、それが解説pdfで解説されている。対して、フェルマーの小定理から以下が言える。時だと以下のようにできる。繋げることによって、目的の関数が得られる。掛け合わせると、各項の係数に加算すべき値が分かる。ついて一括で求めるようにすれば間に合う。まで含んでいるにもかかわらず500ms程度にまで高速化されたので、ほぉ~やっぱNumPyは速いんすねぇ~となる。ikatakosメディアマネージャー文書の先頭へ。