mayoko’s diary

プロコンとかいろいろ。

2016-01-01から1年間の記事一覧

CODE FESTIVAL 2016 に参加しました

タイトル通りです。思ったことをつらつら書いていきます。 1 日目 家から追い出されたのでちょっと早めに家を出ると案の定早く着きすぎた。来ちゃった♥ pic.twitter.com/r5pIBd4dUS— マヨ子@大天使クサハエル (@mayoko_) 2016年11月26日 暇だったのでちょっ…

ハル研プロコン2016に参加しました

ハル研プロコンに参加しました。 www.hallab.co.jp個人的にはとても楽しかったのですが, 上位の人によるとあまり工夫のしどころがなかったようです。とりあえず自分のやったことを書いていきたいと思います。 貪欲パート 一番近くの小惑星に近づく, 最も小惑…

Codeforces Round #365 (Div. 2) C. Chris and Road

問題 codeforces.comn 頂点の凸多角形が x 軸方向の負の方向に単位時間 v で移動する。この凸多角形の内部に入らないように, y 軸を y = w まで移動したい。 y 軸の移動速度が最大で u の時, 最短で何秒で y = w まで移動できるか。 解法 凸多角形の左側を歩…

Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum

問題 codeforces.com数列 A に対して, 以下のクエリに答えよ。 区間 [l, r] に偶数個ある整数の xor を取る 解法 偶数じゃなくて奇数だったら簡単です。というのも, xor は 2 回同じ数をかけられれば自動的に 0 になるので [l, r] の区間の xor を累積和で適…

Codeforces Round #372 (Div. 1) B. Complete The Graph

いやなんか時間とってゆっくり競プロやりたいんですけど… 問題 codeforces.comコスト付きの無向グラフが与えられる。いくつかの辺のコストは好きに選べるので, s から t への最短経路の大きさを L にしたい。このようなことが可能であれば, そのうちの 1 つ…

Codeforces Round #367 (Div. 2) E. Working routine

問題 codeforces.comN*M のグリッドが与えられる。各クエリで 「(a, b), (c, d) を左上の頂点とする高さ h, 幅 w の領域を交換する」ということをする(ただし, 交換する長方形は辺やセルを共有しない)。 全てのクエリを処理した後の最終的なグリッドの状態を…

Codeforces Round #368 (Div. 2) D. Persistent Bookcase

これ普通に頭良いと思うんだけどみんな解いてるんだよなぁ… 問題 codeforces.com最初すべてのセルが塗られていないグリッドが与えられる。以下の Q 個クエリを処理し, グリッドで黒色のセルの数を出力せよ。 i 行 j 列目のセルが白なら黒くする。 i 行 j 列…

AtCoder Regular Contest 061 F - 3人でカードゲーム / Card Game for Three

問題 arc061.contest.atcoder.jp 解法 まず普通に解法を考えます。一度それぞれのカードを決めたらすでにゲームの勝敗は決まっていることを考えるとなんか dp ではないような気がします。で, 問題の性質をよく考えると A さんが勝つには A さんに N 回ターン…

AtCoder Regular Contest 061 E - すぬけ君の地下鉄旅行 / Snuke's Subway Trip

問題 arc061.contest.atcoder.jp 解法 koyumeishi さんに教えてもらいました。@mayoko_ こんな感じでわかるかなぁ…? 赤がコスト 1 、 黒がコスト 0 の辺で、最後に2で割るようにしました。 人のを見ると中継点に入る辺(出る辺)のみコスト1にする派もいるっ…

2015-2016 XVI Open Cup, Grand Prix of Bashkortostan, SKB Kontur Cup Stage 2 A. Abstract Picture

JAG 夏合宿最終日に yurahuna さんに投げたら勝手に AC してくれた問題です。 問題 codeforces.comN*N のグリッド上に色を塗りたい。 1 回の操作では行に同じ色をバーっと塗るか列に同じ色をバーッと塗るかしかない。最終的に塗りたい配色が与えられるので, …

JAG 夏合宿 Day3 G - Share the Ruins Preservation

問題 jag2016autumn.contest.atcoder.jp二次元平面上に点が N 個与えられる。ある X 座標を境に二つの頂点を分割し, それぞれで凸包を作る。この二つの凸包の面積の和を最小化せよ。 解法 蟻本に載っている凸包は, 凸包の下側と上側に分けて凸包を構成します…

JAG 夏合宿 Day3 F - Escape from the Hell

問題文は面白かったんですが実装はつらかったです。 問題 jag2016autumn.contest.atcoder.jp 解法 最後に A[i] 登るところ以外は, 明らかに D[j] = A[j] - B[j] が大きい順に使うのが最適です。この j をどこまで使うかで場合分けします。j の最大値も j あ…

SRM 566 div1 med: PenguinEmperor

問題 TopCoder Statistics - Problem Statement 解法 入力の名前が長いので, n, m とします。 見た目からして行列累乗っぽい感じがします。具体的には, まず dp[i][j] = (i 日目に場所 j にいるような場合の数) というのを i で, それを調べ終わったら m/n …

SRM 566 div1 easy: PenguinSledding

問題 TopCoder Statistics - Problem Statementn 頂点の無向グラフが与えられる。このグラフから辺をいくつか選ぶとき, 以下の条件を満たす選び方の場合の数を求めよ。条件: 選んだ辺上の頂点を 2 次元平面上でどのように配置しても(ただし 3 頂点が同一直線…

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 と戻っ…