mayoko’s diary

プロコンとかいろいろ。

2016-02-01から1ヶ月間の記事一覧

SRM 681 div1 easy: FleetFunding

問題 TopCoder Statistics - Problem Statement 解法 二分探索で答えを求めていきます。ok(x) = (x 個の spaceship を作ることが出来るか?) とします。b の小さいのから順にパーツを作っていくと, 後ろのパーツを作るのになるべく余裕をもたせられるように…

SRM 568 div2 hard: ShuffleSort

問題 TopCoder Statistics - Problem Statement 解法 問題見てすぐに dp[n] = (残り n 枚の時, card をソートし終えるのにかかる回数の期待値) というのが思いつきますが, 素直に遷移を書くと面倒なので, もう少し考えます。n 枚のカードが残っている際に, …

SRM 568 div1 easy: BallsSeparating

問題 TopCoder Statistics - Problem Statement 解法 box i に色を残しておけない際に, ボールが逃げる場所を作っておかなければなりません。各色が逃げる場所を r, g, b とした時, ボールを動かす回数は, i==r の時は, green, blue を動かす回数 i==g の時…

SRM 593 div1 hard: WolfDelaymasterHard

問題 TopCoder Statistics - Problem Statement 解法 topcoder の解説を参考にしました。 http://apps.topcoder.com/wiki/display/tc/SRM+593こっち読むほうが絶対わかりやすいので, 概要しか書きません。下に書いてあるのも, この解説に書いてある変数を普…

SRM 593 div2 hard: MayTheBestPetWin

問題 TopCoder Statistics - Problem Statement 解法 tA = sum(A), tB = sum(B) とします。すると, ある集合 S を決めたとして, maxdiff(S, T) は, max(, ) となります。これを簡単化すると, max(, )となります。よって, のあり得る値がなにかに関する dp を…

SRM 593 div1 easy: HexagonalBoard

問題 TopCoder Statistics - Problem Statement 解法 4 色定理とかあるので, せいぜい 4 色あれば塗りきれることがわかりますが, 実は今回の場合はせいぜい 3 色あれば塗りきれることがわかります。例えば n = 4 の場合は, 以下のようにすれば良いです。RBGR…

SRM 598 div1 hard: TPS

問題 TopCoder Statistics - Problem Statement 解法 頂点数が 1 の場合を除いて, とりあえず 1 つのビーコンを置く必要があります。最初にビーコンを置いた場所を root にした木で, あと最低いくつのビーコンを置かなければならないか, というように考えま…

SRM 598 div1 med: FoxAndFencing

簡単じゃない? 問題 TopCoder Statistics - Problem Statement 解法 ゲーム始まった直後に Ciel が勝てる(d そうでない場合に, Ciel がどこへ逃げても Liss が勝てる場合(d+mov1 これ以外は, どちらかがじりじり攻めていく感じで勝つしかない まず, じりじ…

SRM 598 div2 hard: FoxAndFencingEasy

問題 TopCoder Statistics - Problem Statement 解法 mov1 >= abs(d) なら, 一回で Ciel さんが Liss さんに追いつけるので, Ciel の勝ち そうでない場合, mov1 > 2*mov2 なら, 最初に近づいた時, mov2 以内に近づかないでかつ次に相手がどう動こうと mov1 …

SRM 598 div1 easy: BinPacking

サンプルがすごく丁寧。 問題 TopCoder Statistics - Problem Statement 解法 ビンの大きさが 300 で固定であり, かつ入れる品物の大きさが 100 〜 300 で固定されているので, 200 より大きい品物は一つで入れるしかない 101 以上 200 以下の品物は それより…

Typical DP Contest C - トーナメント

問題 tdpc.contest.atcoder.jp 解法 普通に dp[k][i] = (i が k 回戦まで勝ち抜く確率) とやれば良いんですが, 微妙に遷移で迷ったので書いておきます。i が k 回戦で戦う可能性がある競技者を考えます。p = 1= med であるとすると, いままでは [med, maxi) …

すぬけのお誕生日コンテスト D. Subsequence

問題(というかトップページ) snuke21.contest.atcoder.jp 解法 t を作って, そこから s を作ることを考えます。例えば t が 11001 とかだったとすると, s は, (0...0)1(0...0)1(1...1)0(1...1)0(0...0)1(適当な文字列) というようにして構成できます。t[i] =…

Codeforces Round #341 (Div. 2) D. Rat Kwesh and Cheese

うーん, これは… 問題 codeforces.com 解法 結局 log を一回取るだけで良かったようです。ナニコレ一応学んだこととしては, long double が扱える範囲が結構大きいことですね。@mayoko_ 64bitの小数が10^308位じゃなかったですかね。80bitの小数型は指数分に2^16…

SRM 530 div1 med: GogoXMarisaKirisima

これ難しい…(というか気づけばやるだけ系は難易度の判定が難しそう)(競プロの問題の 8 割は気づけばやるだけ) 問題 TopCoder Statistics - Problem Statement 解法 頂点 i について, 0 -> i に到達可能でかつ i -> n-1 に到達可能である, という条件を満たす…

SRM 530 div1 easy: GogoXCake

問題 TopCoder Statistics - Problem Statement 解法 切り取られていなければならない部分を左上から探索します。 class GogoXCake { public: string solve(vector <string> cake, vector <string> cutter) { int H = cake.size(), W = cake[0].size(); int n = cutter.size(</string></string>…

すぬけのお誕生日コンテスト C - Supermarket

解法 bitDP します。dp[s] = (s で表される集合は既に優先順位が上になることが決まっていて, 新しく別の種類の食品を食べることが出来ないと決まっている月である時, まだ追加することの出来る食品の種類の数) とします。mask[i] = (食品 i が売られている…

すぬけのお誕生日コンテスト B - Snuke

問題(というかトップページ) snuke21.contest.atcoder.jp 解法 's' を消せるので, 's' が連続した部分文字列の直後の文字 c が c 's' を満たすなら, なるべく消したくないですが, 消さないといけないとしたら, 辞書順に影響を与えにくい後ろから消していくの…

SRM 480 div1 hard: StringDecryption

問題 TopCoder Statistics - Problem Statement 解法 暗号化する前の文字列を str0, 一回暗号化した後の文字列を str1, もう一回暗号化した後の文字列を str2 とします。 入力として与えられるのは str2 ですが, str2 から str1 を求めるのは, O(N^2) の dp …

Codeforces Round #341 (Div. 2) E. Wet Shark and Blocks

Codeforces Round #341 (Div. 2) に参加しました。 E 解けないのはダメだ… 問題 codeforces.com 解法 dp[i][j] = (上から数えて i 桁目の時点で, x で割った余りが j になっているような場合の数) とします。すると, dp の遷移は dp[i+1][(j*10+a)%x] += dp[…