ほぼ静的な計画法

競技プログラミングで解いた問題の解法とコードを晒していくページ。ややマイナーなC♯。

2019-05-01から1ヶ月間の記事一覧

AOJ 0244 (Hot Spring Trip : 温泉旅行)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0244 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0244 【解説】 AOJ 0212の類題。 隣接リストのキーを(町の番号,チケットの状態)の組み合わせで管理する。 チケットの状態を「未使用…

AOJ 0243 (Filling Game : 塗りつぶしゲーム)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0243 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0243 【解説】 幅優先探索+深さ優先探索にて処理。 色は3通りあり、現在の左上の色の状態と同じ色のボタンを押す操作は無意味なため、…

AOJ 0242 (Input Candidates : 入力候補)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0242 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0242 【解説】 文字列の出現個数をDictionaryで管理して、条件に該当する文字列を出力すればよい。 Linqとの相性がよく、以下の通り簡…

AOJ 0241 (Quaternion Multiplication : 四元数のかけ算)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0241 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0241 【解説】 解となる四元数の4つの係数x、y、z、wを配列resに格納する。 2つの四元数の4つの係数をar1,ar2として入力から取得し、そ…

AOJ 0240 (Interest Rates : 金利計算)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0240 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0240 【解説】 銀行番号と金利のdictionaryを作成し、定義に従って計算した金利を格納して、金利が最大となる銀行番号をソート等して出…

AOJ 0239 (Calorie Counting : カロリー計算)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0239 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0239 【解説】 カロリーは、(炭水化物+たんぱく質)×4+脂質×9で求められる。 あとは、それぞれのお菓子に対し、各栄養素が制限値を…

AOJ 0238 (Time to Study : 勉強の時間)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0238 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0238 【解説】 勉強の開始時刻と終了時刻は、日を跨がないため、終了時刻から開始時刻を引いた値を勉強の回数分、足していく。 最後に…

AOJ 0237 (The Last Door : 最後の扉)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0237 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0237 【解説】 幾何+グラフ問題。 まずは、ある三角形が光ったときに、その光が触れる三角形(以下、"出力三角形")を求める。三角形が…

AOJ 0236 (Alien Messages : 宇宙人のメッセージ)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0236 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0236 【解説】 各マス目のハミルトン閉路が存在するかを判定する問題。上記を満たす場合、必ず全空きマスに入る辺と出る辺が1対ずつ存…

AOJ 0235 (Sergeant Rian : サージェント・ライアン)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0235 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0235 【解説】 サンプルや画像から自明ではあるが、1の島を根とした木の探索とみなすことができる。 結論から先に言うと、葉に繋がる橋…

AOJ 0234 (Aizu Buried Treasure : 会津の埋蔵金)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0234 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0234 【解説】 費用の最小値にて最良優先探索を行う。(経路を全探索すると当然TLE。) 仮に酸素の考え方がないとすれば、一度訪問した…

AOJ 0233 (Book Arrangement : 図書整理)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0233 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0233 【解説】 入力された整数aを-10進数変換する問題。まず、基数が負でない場合のn進数変換は、以下の手順となる。 aをnで割る。 1.…

AOJ 0232 (Life Game : 人生ゲーム)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0232 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0232 【解説】 戻るマス目がないため、縦軸iをマス目、横軸jを現在の所持金とした二次元配列を用意し、テーブルの値をそれぞれの地点に…

AOJ 0231 (Dangerous Bridge : 危ない橋)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0231 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0231 【解説】 1秒ごとにシミュレーションしていく方法では、時刻の最大値が2^31のため到底間に合わないため、工夫する必要がある。 ま…

AOJ 0230 (Ninja Climbing : 忍者のビル登り)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0230 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0230 【解説】 幅優先探索。現在のビル、現在の階数、現在までの移動回数をノードとして保持し、キューに突っ込んで幅優先探索していく…

AOJ 0229 (Big Hit ! : 大当たり!)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0229 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0229 【解説】 問題文中に記載されている通りに計算すれば問題ない。計算は少々複雑なので、ゲーム全体を通しての支出と収入に分けて考…

AOJ 0228 (Seven Segments : 7 セグメント)

【問題】 https://onlinejudge.u-aizu.ac.jp/problems/0228 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0228 【解説】 それぞれ0~9まで数値の7セグメントをビットで表現したもの配列として保持しておく。「切り替え」を行うということは、0…