はまやんはまやんはまやん

hamayanhamayan's blog

2018-09-15から1日間の記事一覧

道路網改修 [パソコン甲子園2017 予選 J]

https://onlinejudge.u-aizu.ac.jp/challenges/sources/PCK/Prelim/0366?year=2017 前提知識 強連結成分分解 考察過程 1. 全体を強連結にせよという問題に言い換えられる 2. 強連結成分については内部で辺を貼る必要は無いので、強連結成分分解をしてDAGにし…

文字列スワップ [パソコン甲子園2017 予選 I]

https://onlinejudge.u-aizu.ac.jp/challenges/sources/PCK/Prelim/0365?year=2017 前提知識 BIT 考察過程 1. 辞書順最小の文字列を構築するテク「貪欲に先頭から決めていく」 2. ある文字をスワップして先頭にもってくるためには、その文字より前にある文字…

ダンジョン [パソコン甲子園2017 予選 H]

https://onlinejudge.u-aizu.ac.jp/problems/0364 考察過程 1. 一掃できる敵は、移動後の最大列xmax、最大行ymaxとすると、x≦xmax,または,y≦ymaxを満たす座標(x,y)にいる敵 2. これを考えると上や左に移動するのは無駄なので考えない 3. 加えて、右に何回移…

積み荷の配置 [パソコン甲子園2017 予選 G]

https://onlinejudge.u-aizu.ac.jp/challenges/sources/PCK/Prelim/0363?year=2017 前提知識 bitDP 考察過程 1. 横幅4mというのが重要に見える 2. 今回は荷物が置かれているかどうかというのが重要なので、bitdpできそう 3. 丁度1つ上の行の状態だけ持てばい…

トランポリン [パソコン甲子園2017 予選 F]

https://onlinejudge.u-aizu.ac.jp/challenges/sources/PCK/Prelim/0362?year=2017 考察過程 1. 往復できるかという問題だが、「左端から右端へ移動できるか」の判定が作れれば、右端から左端への問題へすぐ変換できるので、片道できるかという問題について…

電線 [パソコン甲子園2017 予選 E]

https://onlinejudge.u-aizu.ac.jp/challenges/sources/PCK/Prelim/0361?year=2017 前提知識 最大公約数(GCD) 考察過程 1. 電線とパネルの継ぎ目の交点を全て求めれば答えが出そう 2. でも解法としてかなり大変に思える 3. なにかに着目して、問題をもっと単…

予約システム [パソコン甲子園2017 予選 D]

https://onlinejudge.u-aizu.ac.jp/challenges/sources/PCK/Prelim/0360?year=2017 解法 https://onlinejudge.u-aizu.ac.jp/solutions/problem/0360/review/3136426/hamayanhamayan/C++14この問題では半開区間で区間が表現されているが、閉区間に直して解く…

9月X日 [パソコン甲子園2017 予選 C]

https://onlinejudge.u-aizu.ac.jp/challenges/sources/PCK/Prelim/0359?year=2017 解法 https://onlinejudge.u-aizu.ac.jp/solutions/problem/0359/review/3136380/hamayanhamayan/C++149日が土曜日であると書いてあるので、土曜日になる日を考えてみる。 2…

買い物 [パソコン甲子園2017 予選 B]

https://onlinejudge.u-aizu.ac.jp/challenges/sources/PCK/Prelim/0358?year=2017 解法 https://onlinejudge.u-aizu.ac.jp/solutions/problem/0358/review/3136378/hamayanhamayan/C++14条件分岐を使って処理を分けていこう。 d := 自分の持ち金で買った時…

お年玉 [パソコン甲子園2017 予選 A]

https://onlinejudge.u-aizu.ac.jp/challenges/sources/PCK/Prelim/0357?year=2017 解法 初歩的な実装問題。 int A, B; //--------------------------------------------------------------------------------------------------- void _main() { cin >> A >…