mayoko’s diary

プロコンとかいろいろ。

JAG 夏合宿 Day2 A - Parades

問題 jag2016summer-day2.contest.atcoder.jpN 頂点からなる木がある。各頂点の次数はたかだか 10 である。このグラフ上でいくつかのパレードを開きたい。パレードの候補は M 個あり, その各パレードは頂点 u から 頂点 v へのパスで構成される。 これらのパ…

院試(東京大学大学院情報理工工学研究科 システム情報学 2016)

院試の受験記です。なんかの参考になれば。 準備編 試験は 英語(TOEFL ITP) 数学 専門 面接 があります。日程的に英語 -> (しばらく間が空く) -> 数学 -> 専門 -> 面接 でした(数学と専門は同じ日にやってほしい感)。噂によると筆記試験(面接以外)でほぼ結果…

JAG 夏合宿に参加しました

楽しかったです。 前日 家で高速回転したり奇声を発したりしながら楽しみにしてました。 1 日目 と言ってもシャイなのでビクビクしながら会場入りしました。 自己紹介でクソなぞなぞに言及したところ結構知られてるイメージでした。うれしい。 ゆらふなさん…

AIM Tech Round 3 (Div. 1) C. Centroids

問題 codeforces.com頂点数 n の木 T 上の点 v が T の centorid であるとは, T から v を取り除いて得られる任意の連結成分が, 全て頂点数 n/2 以下であることを言う。各頂点について, その頂点が以下の操作を一回以下許したとき centroid になるかどうかを…

AIM Tech Round 3 (Div. 1) B. Recover the String

問題 codeforces.com0, 1 のみから構成される文字列で, 以下を満たすものを作れ。 00 の部分文字列が a00 個ある 01 の部分文字列が a01 個ある 10 の部分文字列が a10 個ある 11 の部分文字列が a11 個ある 連続部分文字列ではないことに注意。 解法 0 が n…

AOJ 2439 Hakone

AOJ

問題 Hakone | Aizu Online Judge 解法 まず, '-' があるところは順位が一意的に決まるので, 無視して良いです。与えられる文字列は 'U' と 'D' しか含まれないものとしましょう。そしたら dp します。問題では今の中継地点での i 位の人が, 前の中継地点で…

Codeforces Round #366 (Div. 2) C. Thor

問題 codeforces.comq 個のクエリが飛んでくる。それぞれのクエリは type, x の二つの整数から構成され, type = 1 の時, 種類 x のボールが飛んでくる type = 2 の時, 今までに飛んできた種類 x のボールをすべて捨てる type = 3 の時, 今まで飛んできたすべ…

AOJ 2397 Three-way Branch

AOJ

問題 Three-way Branch | Aizu Online JudgeW*H のグリッドが与えられる。これらのうち, N 個のセルは通れなくなっている。あるセル(x, y) からは (x-1, y+1) or (x, y+1) or (x+1, y+1) にのみ行ける場合, (0, 0) から (W-1, H-1) までの経路は何通りあるか…

Educational Codeforces Round 16 D. Two Arithmetic Progressions

問題 codeforces.comx = a1 * k + b1 = a2 * l + b2, L 解法 k, l の組を一つ求められれば, 後は x が lcm(a1, a2) の周期で解になるので簡単です(実装が楽とは言っていない)。a1 * k + b1 = a2 * l + b2 を変形すると a1 * k - a2 * l = b2 - b1 となります…

Codeforces Round #369 (Div. 2) E. ZS and The Birthday Paradox

問題 codeforces.com整数 n, k が与えられる。p = 2^n として, 1 - (p! / p^k * (p-k)!) の分母と分子を求めよ。ただし分母と分子は非常に大きな値になることがあるので, 10^6+3 で割ったあまりを求める。 (本当は p 解法 上では p! / p^k * (p-k)! と書きま…

Codeforces Round #369 (Div. 2) Directed Roads

問題 codeforces.comn 個の頂点からなるグラフが与えられる。各頂点 i から, A[i] への有向グラフが一本ずつ生えている。このグラフの辺の向きをいくつか入れ替えることにより, このグラフにサイクルができないようにしたい(つまり x0 -> x1 -> ... -> xm ->…

AtCoder Regular Contest 060 F - 最良表現 / Best Representation

問題 arc060.contest.atcoder.jp 解法 n = |w| とします。全て同じ文字で構成されている場合答えが n 1 となること, および w が良い文字列である場合答えが 1 1 になることは明らかです。その他の場合は最良表現が 2 になることが分かるようです。よって, …

AtCoder Regular Contest 060 D - 桁和 / Digit Sum

問題 arc060.contest.atcoder.jp 解法 本番はよくわからない解法で通したのですが, そちらも紹介したいと思います。ある数 n に対して b を決めると, 次のような規則性があることに気付きます。n/2+1 から n までは f(n/2+1, n) から始まって 1 ずつ f(b, n)…

AtCoder Regular Contest 060 E - 高橋君とホテル / Tak and Hotels

なんだかんだ 3 完できてうれぴー。 問題 arc060.contest.atcoder.jp 解法 クエリでは a 戦略としては, 「その日にたどり着けるところまでなるべく遠くへ行く」というのが明らかに最適です。ということで, nxt[0][i] = (頂点 i からなるべく遠くへ行こうとし…

AtCoder Grand Contest 003

問題 agc003.contest.atcoder.jp 解法 全ての数が異なるので, ソートされた後それぞれの数がどこに移動するかが決まっている, ということと, 操作 2 が「偶数番目のみ, 奇数番目のみを入れ替えることができる」ということに対応している, ということがポイン…

yukicoder No.417 チューリップバブル

O(NM^2) だと結構厳しめの制約だと思ってだいぶ悩んでいた。 問題 No.417 チューリップバブル - yukicoder 解法 O(NM^2) の木 dp をします。まず考察ですが, 最後に頂点 0 に戻ってこなければならないことから, v -> u と辺を降りた場合, 再び u -> v と戻っ…

yukicoder No.416 旅行会社

問題 No.416 旅行会社 - yukicoder 解法 クエリを逆に読んでデータ構造をマージする一般的なテクを使えば解けます。まず消される辺についてはすべて消されてる状態にします。この際 0 と連結な頂点は答えが -1 です。で, クエリの後ろの辺から辺を追加してい…

SRM 565 div1 med TheDivisionGame

med にしてはかなり簡単ですね。復帰戦だったのでちょうど良いけど。 問題 TopCoder Statistics - Problem StatementU さんと K さんがゲームをする。ゲームは S = {L, L+1, ..., R-1, R} という数の集合を使って行う。そして, 集合 S の中から何らかの数 X …

SRM 565 div1 easy MonstersValley

院試が終わりました。受かったらそれについてもなんか書きます。 問題 TopCoder Statistics - Problem Statement0 ~ N-1 番までの商品を順番に買っていく。それぞれの商品には値段と重さがあり, 値段は 1 か 2 である。 あなたは, 今までに買った商品の重さ…

AtCoder Regular Contest 059 F - バイナリハック / Unhappy Hacking

問題 arc059.contest.atcoder.jp 解法 まず部分点解法を考えます。dp[n][m][now] = (すでに n 回キーを押したときに, 目標の文字列と m 番目までは一致していて, 生成されている文字は now 個であるような場合の数) という dp をします。これは各状態で 0 を…

AtCoder Regular Contest 059 E - キャンディーとN人の子供 / Children and Candies

問題 arc059.contest.atcoder.jp 解法 まず部分点解法を考えてみますと, dp[i][rest] = (i 番目まで考えた時点でべき乗する数が C から rest まで減っているような時の和) というのを考えると, この i 番目でべき乗する数をいくつ使うかで場合分けして A[i]^…

AOJ 2638 Hyperrectangle

AOJ

問題 Hyperrectangle | Aizu Online Judge 解法 まず, このページを見ると d 次元の立体における体積の求め方が分かります。各辺の長さが 1 の三角錐(?) の体積は 1/d! なんですね。 単体 (数学) - Wikipediaで, 後は包除原理です。例えば 各辺の長さが {2, …

AOJ 2538 Stack Maze

AOJ

問題 Stack Maze | Aizu Online JudgeH*W の迷路が与えられる。この迷路には小文字のアルファベットで表される宝石と, 大文字のアルファベットで表されるそれに対応する宝石を埋め込む穴がある(例えば 'a' とそれに対応する 'A' がある, という感じ)。あなた…

AOJ 2296 Quest of Merchant

AOJ

Merchant, かわいい(小並感) 問題 Quest of Merchant | Aizu Online Judge 解法 すごく複雑そうな問題に見えますが, 落ち着いて問題を分解すると一個一個は大したことありません。まず, 1 回の出張で訪れる町の集合がわかったら, その町の集合へ訪れる最短時…

AOJ 2168 Luigi's Tavern

AOJ

問題 Luigi's Tavern | Aizu Online JudgeH 人の勇者, W 人の戦士, C 人の僧侶, M 人の魔法使いがいる。以下の条件を満たすパーティは最大いくつ作れるか。 パーティには必ず勇者がいなければならない。 同じパーティの勇者と戦士は仲良くなければならない。…

yukicoder No.409 ダイエット

この問題実は btk さんから相談をもらっていたんですけど時間内に解けなかった…(主に蟻本を探していた) 問題 No.409 ダイエット - yukicoder 解法 dp[i] = (i 日目に最後にドーナツを食べる際の最小体重)とします。この発想の時点で結構頭良い気がします(こ…

yukicoder No.408 五輪ピック

問題 No.408 五輪ピック - yukicoder 解法 「頂点 1 からの距離が 2 の頂点 a, b が辺でつながっていたら, 1 -> c -> a -> b -> d -> 1 みたいな感じでループにならない?」っていうのが基本的な発想です。つまり, 各頂点について「1 からの距離が 2 になり…

AOJ 2305 Beautiful Currency

AOJ

問題 Beautiful Currency | Aizu Online Judge要素数 n の数列 a が beautiful であるとは, 1 以上 n-1 以下の任意の i について, a[i+1] % a[i] == 0 となることである。数列 a のいくつかの数を入れ替えて, a を beautiful にしたい。a[i] の値を b[i] に…

AOJ 2326 Number Sorting

AOJ

問題 Number Sorting | Aizu Online Judge 解法 dp[i] = (A+i 番目の数字から始まる数列の数) とします。B-A 例えば 792 という数字の次に来るものを考えると, 8**, 9** となるもの i.e. [800, 1000) 79* となるもの i.e. [793, 800) というように, 各桁を 1…

SRM 562 div1 med CheckerFreeness

問題 TopCoder Statistics - Problem Statement白い頂点と黒い頂点が与えられる。白い頂点からなる線分と黒い頂点からなる線分で, 交差するものは存在するか。 解法 実は, 線分が交差する場合, 白い頂点の線分か黒い頂点の線分のいずれかはその凸包のいずれ…