mayoko’s diary

プロコンとかいろいろ。

AOJ

AOJ 2402 Milky Way

AOJ

問題 Milky Way | Aizu Online Judge 解法 各星の間の距離は, 線分と線分の間の距離の問題に帰着されます(5*5 の線分の対の距離を測って, 最小のものが星の距離と考えれば良い)。これは以前別の問題でやりました。 mayokoex.hatenablog.comあとはダイクスト…

AOJ 2312 Magical Girl Sayaka-chan

AOJ

問題 Magical Girl Sayaka-chan | Aizu Online Judge 解法 サンプル 1 みたいな感じで, K は 山のような形(小 -> 中 -> 大 -> 中 -> 小) になっているのが良さそうな気がします。実際にこれは正しいです。雰囲気証明すると, a [(Sa+...+Sb)/L] + [(Sb+...+Sc…

AOJ 1182 Railway Connection

AOJ

問題 鉄道乗り継ぎ | Aizu Online Judge 解法 めんどくさいダイクストラみたいな感じです。ダイクストラするとき, d[v][c] = (直前に乗った電車が c であって今いる頂点が v であるようなものの最短距離) というのが一番わかりやすそうですが, r_jk が単調減…

AOJ 1132 Circle and Points

AOJ

問題 Circle and Points | Aizu Online Judge 解法 ある円が答えだったとします。この円を少し動かしても, この円が最適であることに変わりはありません。この円を適当に動かして, 初めてある点とぶつかったとき, 円をこの点からはみ出さないように動かすと,…

AOJ VolumeACPC2015Day1 D : Checkered Pattern

AOJ

問題 http://judge.u-aizu.ac.jp/onlinejudge/cdescription.jsp?cid=ACPC2015Day1&pid=D 解法 適当に実験すると答えがわかります。自明っぽいところから攻めて行きます。 まず, g = gcd(h, w) とすると, (h/g, w/g) の長方形を g 回同じように繰り返している…

AOJ 2200: Mr. Rito Post Office

AOJ

問題 Mr. Rito Post Office | Aizu Online Judge 解法 普通に dp しようとすると dp[次目指す場所][今いる位置][船の位置] みたいになりそうですがこれだと状態数多すぎで間に合いません(というか dfs だとループになりそう)。そこで, dp の遷移を限定するこ…

AOJ 2022: Princess, a Cryptanalyst

AOJ

問題 Princess, a Cryptanalyst | Aizu Online Judge 解法 N! 通りの並び方を試します。で, apple, length の "le" のように前の文字の後半, 後ろの文字の前半で一致しているところがあったら applength のようにつなげて考えればいけます。…と言いたいとこ…

AOJ 1196: Bridge Removal

AOJ

問題 橋の撤去 | Aizu Online Judge 解法 スタートする頂点を全部試すとして, 各頂点について O(N) で橋の撤去にかかる最小費用を求めれば良いです。まぁ木DP ですよね。サンプル見ればわかりますが, この問題でポイントなのは p -> v と訪れた後, 必ずしも …

AOJ 0519: Worst Reporter

AOJ

問題 Worst Reporter | Aizu Online Judge 解法 順位表の再現はトポロジカルソートをすれば簡単にできます。あとは複数通りのトポロジカルソートがあり得るかですが, ここでトポロジカルソートのアルゴリズムを見てみましょう。 L ← トポロジカルソートした…

AOJ 2511 Sinking islands

AOJ

エディタいじってたら一日が終わっていました。 問題 Sinking islands | Aizu Online Judge 解法 まず, 最初から連結でない場合は橋を架ける必要がないので答えは 0 です。他の場合は, どの時点で橋が連結でなくなるのかを調べます。 橋が連結でなくなったタ…

AOJ 2510: 双子の読書感想文

AOJ

問題 Twin book report | Aizu Online Judge 解法 本を読む時間を最短にしないといけないことに注目します。とりあえず感想を書かなければならないことは忘れて, 読むことだけを考えましょう。ある一冊の本(A とする)を読むのにかかる時間が, 他のすべての本…

AOJ 1168: ぐらぐら

AOJ

これ全然むずかしくないし 250 くらいで良いのでは…? 問題 Off Balance | Aizu Online Judge 解法 言われたとおりやるだけです。ブロックを上から調べていき, それが地面にどれだけくっついているのかを調べます。 また, そのブロックの上に乗っかっている…

AOJ 1157: 大玉転がし

AOJ

問題 Roll-A-Big-Ball | Aizu Online Judge 解法 大玉の通る線分 p1-p2 と障害物 minX-minY-maxX-maxY との間の最小距離は, p1-p2 と (minX,minY)-(minX,maxY) の距離 p1-p2 と (minX,minY)-(maxX,minY) の距離 p1-p2 と (maxX,minY)-(maxX,maxY) の距離 p1-…

AOJ 1181: 偏りのあるサイコロ

AOJ

問題 偏りのあるサイコロ | Aizu Online Judge 解法 実装するだけ。と言っても結構めんどくさいので実装方針を軽く書きます。サイコロのクラスを作って, init(t, f) … top と front を決めたらサイコロの状態を決定する rotate(dir)…回転させるというメソッ…

AOJ 2642: Dinner

AOJ

問題 Dinner | Aizu Online Judge 解法 食堂全振りをベースに考えます。ここから部分問題として, 「j 日目を自炊にしたらどうなるか」を考えてみます。 こうすると, 当然のことながら C[j] の幸福度はなくなります。また, j 日目までに自炊パワーは j 減って…

AOJ 2441: FizzBuzz

AOJ

問題 FizzBuzz | Aizu Online Judge 解法 二分探索します。calc(x) = ([1, x] まで fizzbuzz を書いた時の文字数), とすると, これは [1, 10), [10, 100), ..., [10^(n-1), 10^n) , [10^n, x] の文字数をそれぞれ調べれば求めることが出来ます。これで calc(…

AOJ 2640: Prowler

AOJ

これめっちゃ難しいと思うんですけど… 問題 Prowler | Aizu Online Judge 解法 自分の周りの 8 マスの状況を全部考えてみると, 次に移動できるマスが一意に決まりそうなことに気づきます。よって, 素直に最短経路を求めてその時に通ったマスの数を求めれば良…

AOJ 1175: そして,いくつになった?

AOJ

問題 And Then. How Many Are There? | Aizu Online Judge 解法 残っている円盤を状態としてメモ化再帰すればいけそうなんですが, AOJ のメモリ制限的に dp[1よく考えると, 毎回の遷移で円盤は 2 つ消えるので, 状態としては bit が偶数個/奇数個 立ったもの…

RUPC Day1 F : Relay

AOJ

問題 http://judge.u-aizu.ac.jp/onlinejudge/cdescription.jsp?cid=RitsCamp16Day1&pid=F 解法 解説スライドを参考にして解きました。RUPCに参加してくださった方ありがとうございます!Day1の解説スライドを公開しました https://t.co/MOfSf8WrP9 #rupc201…

AOJ 1178 A Broken Door

AOJ

問題 A Broken Door | Aizu Online Judge 解法 前のドワコンの C 問題に似てるということで解いてみました。今回は前回のように二分探索で解くのではなく, ダイクストラっぽく解きたいと思います。ゴール地点からスタート地点に向かって探索します。ゴール地…

AOJ Sort II - Minimum Cost Sort

AOJ

学校の別のコースの人の授業でやった問題らしいので軽い気持ちでやってみたけど, 全然わからなかった… 問題 最小コストソート | アルゴリズムとデータ構造 | Aizu Online Judge 解法 まず基本的な考察をします。例えば 10 7 8 9 といった数列を考えると, 最…

AOJ 2190:Angel Stairs

AOJ

問題 Angel Stairs | Aizu Online Judge 解法 後ろからたどっていけば良いです。 例えば, ひとつ目の入力例を見ていきましょう。C E D# F G A C E F Gまずそれぞれの配列を逆さまにします。A G F D# E C G F E Cまず G を作る必要があります。スタートが A …

AOJ 2546: Chocolate

AOJ

問題 Chocolate | Aizu Online Judge 解法 まず, チョコレートを取る順番は上の行から順番で良いとわかります。これは 2 行目以降のチョコレートは必ずそれより上にあるチョコレートを取らないと取ることが出来ないことからわかります。ということで, 一番上…

AOJ 1208 Rational Irrationals

AOJ

前のこどふぉの問題を解こうとしたら Stern-Brocot 木というのを考えるらしいので AOJ で練習してみました。 Spaghetti Source - Stern-Brocot 木既約分数を探索するのに都合が良さそうですね。 問題 Rational Irrationals | Aizu Online Judge 解法 Stern B…

AOJ 2335: 10歳の動的計画

AOJ

大学受験のとき使った参考書を引っ張ってきました。 問題 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2335 解法 まず寄り道回数のうち左に移動する回数を i 回として横移動と縦移動を分けます。そして, 「横移動の場合の数」と「縦移動の場…

AOJ 0270 Modular Query

AOJ

問題 Modular Query | Aizu Online Judge 解法 配列 c をソートしておき, 各クエリ q について, c[n-1] から余りを求めていくと考えます。このとき, c[i] を q で割った余りが p であるとすると, c[i]-p から c[i] までの数字は, 余りが p よりも小さいこと…

AOJ 2255 6/2(1+2)

AOJ

9だと思います。 問題 6/2(1+2) | Aizu Online Judge 解法 今までのように返す値を単なるintみたいな感じにしても上手くいかないのでsetを返すようにする。式を分析するときはそれぞれのoperatorがどの順番で使われるのかをnext_permutationで調べていく(た…

AOJ 1155 Problem C: 如何に汝を満足せしめむ? いざ数え上げむ…

AOJ

題名長いっすね。構文解析の練習です。だいぶ慣れてきた。 問題 How can I satisfy thee? Let me count the ways... | Aizu Online Judge 解法 formulaにしたがって構文解析する。 typedef string::const_iterator State; int formula(State& begin, int s);…

模擬国内予選 E.サイコロスタンプ

AOJ

ACM-ICPCの模擬国内予選に参加しました。チーム(@haraduka_, @garasubo, @mayoko_)としてはA, B, Dの3問を解いてなるほど。といった感じでした。以前1年分やった感じでは4完はできると思っていたのでちょっと悲しいです。しかも僕が担当して解かれた問題は一…

AOJ 2401 恒等式

AOJ

デバッグに非常に時間がかかったけどなんとか出来た。 問題 Equation | Aizu Online Judge 解法 問題文中に最高のヒントが書いてあるのでそれを元に関数を作る。 <equation> ::= <formula> "=" <formula> <formula> ::= "T" | "F" | "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | </formula></formula></formula></equation>…