{"trustable":true,"prependHtml":"\u003cstyle type\u003d\"text/css\"\u003e\n section pre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333;\n background: rgba(255, 255, 255, 0.5);\n border: 1px solid #ccc;\n border-radius: 6px;\n }\n\u003c/style\u003e\n\u003cscript\u003e\n window.katexOptions \u003d {\n delimiters: [\n {left: \u0027\\\\(\u0027, right: \u0027\\\\)\u0027, display: false},\n {left: \u0027\\\\[\u0027, right: \u0027\\\\]\u0027, display: true}\n ]\n };\n\u003c/script\u003e\n","sections":[{"title":"","value":{"format":"HTML","content":"\n\t\t\t\n\t\t\t\u003cp\u003e今,G○○gle Code Jam の地区大会が始まろうとしている.\r\n斜め右前の席に座っている男の ID は lyrically と言うらしい.\r\n東京大学時代の記憶に,似たような ID の仲間が居た覚えがあるが,僕の仲間は一人残さず美少女だったはずだ.\u003c/p\u003e\r\n\u003cp\u003e僕の記憶の中の lyrically は,アルゴリズムの力や実装の力もさながら,\r\n気合で問題に正解することにも定評があった.\r\n例えば,計算量が多少悪いプログラムでも,上手な実装をすることで高速にし,\r\n正解とするようなことも得意としていた.\u003c/p\u003e\r\n\u003cp\u003eプログラムを高速にする上で,非常に大切になってくるのが,\r\nキャッシュメモリとの親和性である.\u003c/p\u003e\r\n\u003cdiv class\u003d\"section\" id\u003d\"id1\"\u003e\r\n\u003ch2\u003e問題\u003c/h2\u003e\r\n\u003cp\u003eブロック毎に読み込みのコストが異なるメモリを考える.\r\n起こる全てのメモリアクセスがあらかじめ分かった状態での,\r\nフルアソシアティブのキャッシュメモリでの最善なキャッシュ戦略を求めたい.\r\n以下,平易な言葉で説明する.\u003c/p\u003e\r\n\u003cp\u003e\u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003eM\u003c/i\u003e\u003c/span\u003e 個の箱と,\u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003eN\u003c/i\u003e\u003c/span\u003e 個のボールがある.\r\nボールには \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e1\u003c/span\u003e から \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003eN\u003c/i\u003e\u003c/span\u003e までの番号が付いており,\r\n各ボール \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ei\u003c/i\u003e\u003c/span\u003e には重さ \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ew\u003c/i\u003e\u003csub\u003e\u003ci\u003ei\u003c/i\u003e\u003c/sub\u003e\u003c/span\u003e が決まっている.\r\nまた,長さ \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003eK\u003c/i\u003e\u003c/span\u003e の数列 \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ea\u003c/i\u003e\u003csub\u003e1\u003c/sub\u003e,\u0026nbsp;\u003ci\u003ea\u003c/i\u003e\u003csub\u003e2\u003c/sub\u003e,\u0026nbsp;…,\u0026nbsp;\u003ci\u003ea\u003c/i\u003e\u003csub\u003e\u003ci\u003eK\u003c/i\u003e\u003c/sub\u003e\u003c/span\u003e が与えられる.\r\n各 \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ea\u003c/i\u003e\u003csub\u003e\u003ci\u003ej\u003c/i\u003e\u003c/sub\u003e\u003c/span\u003e は \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e1\u0026nbsp;≤\u0026nbsp;\u003ci\u003ea\u003c/i\u003e\u003csub\u003e\u003ci\u003ej\u003c/i\u003e\u003c/sub\u003e\u0026nbsp;≤\u0026nbsp;\u003ci\u003eN\u003c/i\u003e\u003c/span\u003e を満たす整数である.\u003c/p\u003e\r\n\u003cp\u003eはじめは全ての箱は空である.\r\n\u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ej\u003c/i\u003e\u0026nbsp;\u003d\u0026nbsp;1,\u0026nbsp;2,\u0026nbsp;…,\u0026nbsp;\u003ci\u003eK\u003c/i\u003e\u003c/span\u003e の順に,以下を行いたい.\u003c/p\u003e\r\n\u003cul class\u003d\"simple\"\u003e\r\n\u003cli\u003eボール \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ea\u003c/i\u003e\u003csub\u003e\u003ci\u003ej\u003c/i\u003e\u003c/sub\u003e\u003c/span\u003e が入っている箱があれば,何もしない.\u003cul\u003e\r\n\u003cli\u003eこの操作にかかるコストは 0 である.\u003c/li\u003e\r\n\u003c/ul\u003e\r\n\u003c/li\u003e\r\n\u003cli\u003eボール \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ea\u003c/i\u003e\u003csub\u003e\u003ci\u003ej\u003c/i\u003e\u003c/sub\u003e\u003c/span\u003e が入っている箱がなければ,いずれかの箱にボール \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ea\u003c/i\u003e\u003csub\u003e\u003ci\u003ej\u003c/i\u003e\u003c/sub\u003e\u003c/span\u003e を入れる.\u003cul\u003e\r\n\u003cli\u003eボールを箱に入れる際,もし既にその箱に入っているボールがあれば,そのボールは外に出す.\u003c/li\u003e\r\n\u003cli\u003eこの操作にかかるコストは \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ew\u003c/i\u003e\u003csub\u003e\u003ci\u003ea\u003c/i\u003e\u003csub\u003e\u003ci\u003ej\u003c/i\u003e\u003c/sub\u003e\u003c/sub\u003e\u003c/span\u003e である.(コストは,入れる箱や取り出すボール等にはよらない.)\u003c/li\u003e\r\n\u003c/ul\u003e\r\n\u003c/li\u003e\r\n\u003c/ul\u003e\r\n\u003cp\u003eコストの和の最小値を計算するプログラムを作成せよ.\u003c/p\u003e\r\n\u003c/div\u003e\r\n\u003cdiv class\u003d\"section\" id\u003d\"id2\"\u003e\r\n\u003ch2\u003e入力\u003c/h2\u003e\r\n\u003cp\u003e入力の最初の行は 3 つの整数 \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003eM\u003c/i\u003e,\u0026nbsp;\u003ci\u003eN\u003c/i\u003e,\u0026nbsp;\u003ci\u003eK\u003c/i\u003e\u003c/span\u003e を含む.\u003c/p\u003e\r\n\u003cp\u003e続く \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003eN\u003c/i\u003e\u003c/span\u003e 行の \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ei\u003c/i\u003e\u003c/span\u003e 行目には整数 \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ew\u003c/i\u003e\u003csub\u003e\u003ci\u003ei\u003c/i\u003e\u003c/sub\u003e\u003c/span\u003e が書かれている.\u003c/p\u003e\r\n\u003cp\u003e続く \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003eK\u003c/i\u003e\u003c/span\u003e 行の \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ej\u003c/i\u003e\u003c/span\u003e 行目には整数 \u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e\u003ci\u003ea\u003c/i\u003e\u003csub\u003e\u003ci\u003ej\u003c/i\u003e\u003c/sub\u003e\u003c/span\u003e が書かれている.\u003c/p\u003e\r\n\u003c/div\u003e\r\n\u003cdiv class\u003d\"section\" id\u003d\"id3\"\u003e\r\n\u003ch2\u003e出力\u003c/h2\u003e\r\n\u003cp\u003eコストの和の最小値を出力せよ.\u003c/p\u003e\r\n\u003c/div\u003e\r\n\u003cdiv class\u003d\"section\" id\u003d\"id4\"\u003e\r\n\u003ch2\u003e制約\u003c/h2\u003e\r\n\u003cul class\u003d\"simple\"\u003e\r\n\u003cli\u003e\u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e1\u0026nbsp;≤\u0026nbsp;\u003ci\u003eM\u003c/i\u003e\u0026nbsp;≤\u0026nbsp;10\u003c/span\u003e\u003c/li\u003e\r\n\u003cli\u003e\u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e1\u0026nbsp;≤\u0026nbsp;\u003ci\u003eN\u003c/i\u003e\u0026nbsp;≤\u0026nbsp;10\u003csup\u003e4\u003c/sup\u003e\u003c/span\u003e\u003c/li\u003e\r\n\u003cli\u003e\u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e1\u0026nbsp;≤\u0026nbsp;\u003ci\u003eK\u003c/i\u003e\u0026nbsp;≤\u0026nbsp;10\u003csup\u003e4\u003c/sup\u003e\u003c/span\u003e\u003c/li\u003e\r\n\u003cli\u003e\u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e1\u0026nbsp;≤\u0026nbsp;\u003ci\u003ew\u003c/i\u003e\u003csub\u003e\u003ci\u003ei\u003c/i\u003e\u003c/sub\u003e\u0026nbsp;≤\u0026nbsp;10\u003csup\u003e4\u003c/sup\u003e\u003c/span\u003e\u003c/li\u003e\r\n\u003cli\u003e\u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e1\u0026nbsp;≤\u0026nbsp;\u003ci\u003ea\u003c/i\u003e\u003csub\u003e\u003ci\u003ej\u003c/i\u003e\u003c/sub\u003e\u0026nbsp;≤\u0026nbsp;\u003ci\u003eN\u003c/i\u003e\u003c/span\u003e\u003c/li\u003e\r\n\u003c/ul\u003e\r\n\u003c/div\u003e\r\n\u003cdiv class\u003d\"section\" id\u003d\"id5\"\u003e\r\n\u003ch2\u003e部分点\u003c/h2\u003e\r\n\u003cp\u003eこの問題の判定には,20 点分のテストケースのグループが設定されている.\r\nこのグループに含まれるテストケースの入力は以下を満たす.\u003c/p\u003e\r\n\u003cul class\u003d\"simple\"\u003e\r\n\u003cli\u003e\u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e1\u0026nbsp;≤\u0026nbsp;\u003ci\u003eM\u003c/i\u003e\u0026nbsp;≤\u0026nbsp;3\u003c/span\u003e\u003c/li\u003e\r\n\u003cli\u003e\u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e1\u0026nbsp;≤\u0026nbsp;\u003ci\u003eN\u003c/i\u003e\u0026nbsp;≤\u0026nbsp;10\u003c/span\u003e\u003c/li\u003e\r\n\u003cli\u003e\u003cspan style\u003d\"font-size:110%;font-family:times new roman;\"\u003e1\u0026nbsp;≤\u0026nbsp;\u003ci\u003eK\u003c/i\u003e\u0026nbsp;≤\u0026nbsp;10\u003csup\u003e3\u003c/sup\u003e\u003c/span\u003e\u003c/li\u003e\r\n\u003c/ul\u003e\r\n\u003c/div\u003e\r\n\u003cdiv class\u003d\"section\" id\u003d\"id6\"\u003e\r\n\u003ch2\u003e入出力例\u003c/h2\u003e\r\n\u003cdiv class\u003d\"section\" id\u003d\"id7\"\u003e\r\n\u003ch3\u003e入力例 1\u003c/h3\u003e\r\n\u003cp\u003e入力例 1:\u003c/p\u003e\r\n\u003cpre class\u003d\"literal-block\"\u003e\r\n3 3 6\r\n10\r\n20\r\n30\r\n1\r\n2\r\n3\r\n1\r\n2\r\n3\r\n\u003c/pre\u003e\r\n\u003cp\u003e入力例 1 に対する出力例:\u003c/p\u003e\r\n\u003cpre class\u003d\"literal-block\"\u003e\r\n60\r\n\u003c/pre\u003e\r\n\u003c/div\u003e\r\n\u003cdiv class\u003d\"section\" id\u003d\"id8\"\u003e\r\n\u003ch3\u003e入力例 2\u003c/h3\u003e\r\n\u003cp\u003e入力例 2:\u003c/p\u003e\r\n\u003cpre class\u003d\"literal-block\"\u003e\r\n2 3 6\r\n10\r\n20\r\n30\r\n1\r\n2\r\n3\r\n1\r\n2\r\n3\r\n\u003c/pre\u003e\r\n\u003cp\u003e入力例 2 に対する出力例:\u003c/p\u003e\r\n\u003cpre class\u003d\"literal-block\"\u003e\r\n80\r\n\u003c/pre\u003e\r\n\u003c/div\u003e\r\n\u003c/div\u003e\r\n"}}]}