AOJ

AOJ2205 Lottery Checker

AOJ

解法 ループ全探索やるだけ。確認してないけど多分ジャッジには '*' が数字の末から詰まっていくパターンでないものも有ると思うので、それにも対応するように '*' は一致確認をスキップするような実装にする。反省 さすがに20分くらいで実装できた。慎重目…

AOJ2409 Power

AOJ

解法 二重ループの全探索。 必ず左端から詰めるという制約の元、できるだけ右端まで到達できる権力を持つものを選ぶ。右端がNまで辿り着かない場合は"Impossible"と出力する。反省 D問題だし特殊な貪欲のようなものが有るのではないかという余計な考え方から…

AOJ2021 Princess in Danger

AOJ

解法 拡張ダイクストラ。施設で冷凍する時間を決めるときに、その場にとどまって最大Mまで回復する場合を全て priority_queue につっこむ。ここで、その場にとどまることがポイントでエッジの移動と冷凍を同時にやろうとしないこと。同時にやろうとすると、…

AOJ0144 Packet Transportation

AOJ

解法 BFS (or Warshall-Floyd) BFSではノードの接続を隣接行列でなくて連結リストにして解いたけどその必要はあったのだろうか。 因みにnは100以下なので、コストを1に定めて Warshall-Floyd しても解ける。この方が実装が短いし、一度最短路を求めればクエ…

AOJ0203 A New Plan of Aizu Ski Resort

AOJ

解法 典型の配るDP。ジャンプ後の位置に障害物がある場合を見逃さないようにする。 あと問題文に書かれているけれど、ジャンプ台に乗って Y を超えるようなケースも注意。 自分は斜めからスキー台に侵入する場合分けが面倒になりそうだと思ったので直進を0, …

AOJ2311 Dessert Witch

AOJ

未実装考えてる解法メモは続きにある

AOJ2322 Chinese Classics

AOJ

概要 漢文の返り点を書き下し文に変換するアルゴリズムを実装せよ。

AOJ0122 Summer of Phyonkichi

AOJ

解法スプリンクラーとぴょん吉の dx, dy を作成してdfsすればいい。至極単純なやるだけ問題なのに1時間30分は要した。コンテスト中の1時間30分を考えたら、どうしようもない痛手になる。理由その1 「その番号が作動する順番を表しています」を見落として、…

AOJ2519 English

AOJ

未実装 イメージしてるやつのメモ

AOJ1140 Cleaning Robot

AOJ

未実装、合ってるか分からない解法メモは以下

AOJ1116 Jigsaw Puzzles for Computers

AOJ

解法1.まだ使っていないパズルの選択 2.回転方向の選択 3.上下左右で配置に適当なパズルかどうか判定 4.配置可能なら更にパズルをおく(再帰) 5.全てのパズルを配置できたら、答えの場合の数が1増加する 6.再帰関数の戻り値を利用して、全ての…

AOJ1189 Prime Caves

AOJ

初めに素数洞穴のマップを作る。 渦状にマップを作るのはバグりやすいので、まずはdx, dyを使わずに渦を1方向ずつforループを回して作ると良い。これでかなり楽に書ける。後はDPすればよい。自分は初めの地点から下3方向の洞穴に向かってBFSしていきDP配列…

AOJ1145 The Genome Database of All Space Life

AOJ

AOJ1163 Cards

AOJ

二部グラフの最大マッチング問題なのでフローを作り、最大流量を調べる。青と赤のカードのペアで gcd > 1 が取れるものに辺が引ける。

AOJ 1126 The Secret Number

AOJ

解いてる途中のメモ MAPの中で数字のものだけを使って文字列結合をしていく。dpはstringの配列(vector) でもつとよい。 dp[i+1][j+1] = max(dp[i][j+1]+M[i+1][j+1], max(dp[i+1][j]+M[i+1][j+1])) Mが数値か文字かの判定が必要。数値なら、数が大きくなるよ…

AOJ 1132 Circle and Points

AOJ

任意の二点を選んでその点を通る円を作る。円は2個ある。 そのような全ての円それぞれが包含できる点の数を数えて最大値を求める。N 円の中心点の求め方 選んだ2点a, bの作る直線Aの生む垂直二等分線と、2点のうち一方の点と中心を結ぶ長さ1の線分から、三…

AOJ1131 Unit Fraction Partition

AOJ

途中 メモ p, q, a, n が与えられる。 分数の値が等しいというのを確かめる際に浮動小数点に直してはいけない。 p/q, nume/deno の2つの値が等しい p*deno == q*nume であることを利用する また、問題文で指定されるような枝刈りを行うこと

AOJ 0224 Bicycle Diet

AOJ

途中 訪れたケーキの集合と現在地点を状態として持って拡張ダイクストラを実行する。 L, C, H, Dの種類のノードがあるが、全て一つのノードに詰める。その時、添字が例えば H, D, L, C の順になるように詰めて、予め種類ごとの場所を決めてやるのが上手い。

AOJ0531 Paint Color

AOJ

蟻本のそれで座標圧縮する。テープの区間を塗りつぶしたらDFSorBFSすればよい。座標圧縮する問題ではスタックオーバーフローの危険のないBFSの方が安全。まだ座標圧縮自体が掴みきれてない。

AOJ1145 The Genome Database of All Space Life

AOJ

AOJ1163 Cards

AOJ

二部グラフの最大マッチング問題なのでフローを作り、最大流量を調べる。青と赤のカードのペアで gcd > 1 が取れるものに辺が引ける。

AOJ 1162 Discrete Speed

隣接リストを用いて拡張ダイクストラをする。 やりかた知ってれば書き下すだけだった。状態として 「前の位置」「現在位置」「到着時の速度」「経過時間」 を持つとよい。priority_queue に push する条件として制限速度を与えてやることに注意。

AOJ 1189 Prime Caves

AOJ

未解決 初めに洞穴のマップを作る。エラトステネスの篩を掛けて、マップのidと対応を見ると素数洞穴がわかる。 洞穴のマップがバグりそうならdx, dyを使わずに渦を1方向ずつforループを回して作ってみれば良い。これでまずバグらない。後はDPなのだが、私は…

AOJ1163 Cards

AOJ

二部グラフの最大マッチング問題なのでフローを作り、最大流量を調べる。青と赤のカードのペアで gcd > 1 が取れるものに辺が引ける。

AOJ1145 The Genome Database of All Space Life

AOJ

解きたいメモ

AOJ

記事作りかけのやつと1144 Curling 2.0