physics0523's 精進ログ

主に競プロの面白い問題の解法をメモします

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

Block Game(AGC050-C)

C - Block Game (問題概要は省略) 実装してて頭ぐちゃぐちゃになったので思考整理。 この問題において、 \(B\) がざっくり \(20\) 個強あれば必ずすぬけ君を敗北させられる。(何故なら、すぬけくんの移動可能範囲を \(1/2\) ずつ減らしていけるから) なので…

Make It One(CFR519-F)

Problem - F - Codeforces \(N\) 要素からなる数列 \(A\) がある。 この要素からいくつか選んでその \(\gcd\) を \(1\) とする時、選ぶ要素数は最小でいくつになるだろうか。また、そのように選ぶことが不可能な場合 \(-1\) を出力せよ。 \( 1 \le N,A_i \le…

TopCoderで、RedCoderになりました

TopCoderで赤くなりました。 ここまで5年半、競技プログラミングを始めて2032日目の出来事でした。 正直まだ現実を飲み込めてない部分もありますが、この5年半、長かった… AOJに入り浸ったり、JOIで楽しいことたくさんしたり、AtCoderで地獄の停滞を経験した…

Mysterious Sequence(CC:MYSAR)

Mysterious Sequence \(N\) 要素からなる、数列 \(A\) があります。 あなたは、この数列に以下のクエリを尋ねることができます。 Q l1 r1 l2 r2 \( \max(A_{l1},A_{l1+1},...,A_{r1}) - \min(A_{l2},A_{l2+1},...,A_{r2})\) の値を求める。 \( A_1 , A_N \) …

集合 \({1,2,...,N}\) (\(N\) は巨大) から数を消していきながら、現在 \(k\) 番目の数を求めるテク

突然ですが、次の問題を解きたいです。(これは Move the Coins - Creating Tests の部分問題です。全部やるとむつごいので次の問題だけ取り出します。) \(1,2,...,N\) をそれぞれ \(1\) 個ずつ含む集合があります。以下の \(Q\) 個のクエリを処理してくださ…

木から頂点を削除しながら連結成分を考える時に、別の木を構成して考えるテク(CC:CHEFCOMP)

Chefina and Strange Tree <問題概要> \( N \)頂点からなる木と、数列 \( P_i , A_i , B_i \) が与えられる。 木の各頂点には、カウンターがひとつずつ設置されている。全てのカウンターの初期値は \( 0 \) である。 この木に対して、以下のような操作を \( …

こどふぉWriter体験記 ~ 競プロ公式コンのつくりかた

先日、私がいわゆる公式な(Ratedな)コンテストとしては初めて、Writerを務めさせて頂いた Codeforces Round #654 (Div. 2) 、お楽しみいただけたでしょうか? 参加できなかったという方も問題に挑戦していただけると嬉しい気持ちになります。 さて、今回はコ…

Complexity(AGC033-D)

D - Complexity 解説と少しだけ方針が違ったのでメモ。 ある縦の行の区間 \([i,j]\) と、左端をとる列 \(k\) を固定して、(複雑さ \(x\) を考慮するときに)とれる右端の最大値を dp[行の区間 \([i,j]\) ][左端をとる列 \(k\) ]={可能な右端の最大値(存在しな…

できてへんやんけーッ!! 基本的な2人ゲームが~~~~!!

自分は競プロにおいて、2人ゲームの問題が非常に苦手です。Writer各位は僕を潰したければ2人ゲームを出すことを推奨します。 これを反省して、2人ゲームの必勝法の証明の流れと、3種類の「基本的な2人ゲームの勝ち方」(手順復元含め)を紹介していきます。 1.…

周期性補題の利用 : Blocks(CC:UWCOI20F)

Blocks を解くときに使った、新規性のある話題なのでメモ。 長さ \(N\) の文字列 \(S\) があります。 「単位文字列が何度繰り返されているか」を (文字列の長さ) / (文字列の長さの約数である、文字列の周期) の 最大値で定義します。 例えば、 "hellohelloh…

\(min(A_i+B_j,A_j+B_i)\) の最大値を求めたいときのテク

これは Cow and Fields の解説で見たテクニックなのですが、他でも見たことがある気がするのでまとめておきます。 今回解きたいのは以下の問題。 長さ \(N\) の \(2\) 整数の組 \((A_i,B_i)\) があります。 このとき、相異なる \(2\) つを選んだ時の \(min(A…

Distinct Boxes(AWTF2019-D)

この記事では、 D - Distinct Boxes の解説の内容をざっくり日本語に翻訳します。 (簡単のために空の箱を1つ作ることを認めておき、最後に解を-1するという前提で議論を行います。) この問題では、「解 \(K\) を先に仮定して、\(K\) が実現可能かどうかは二…

完全グラフ \(K_{2N}\) を \(N-1\) 個のハミルトン閉路と \(1\) 個の完全マッチングに分解する

今回は、記事の名前の通り「完全グラフ \(K_{2N}\) を \(N-1\) 個のハミルトン閉路と \(1\) 個の完全マッチングに分解」していこうと思います。 まず、この分解の意味について。具体的には Doofish Matrix という問題を解くときにこれを調べててヒットしなく…

あの〜、お詫びと言っては何ですけどちょっと数え上げでよく見るらしい「主客転倒」の解説今から書くんで…

この記事は Dwango Programming Contest 6th でNosubをやってしまったお詫びとして書かれたものです。このコンテストのB問題もこの記事の中で解説されます。 まず、この記事で説明する「主客転倒」とは、 得点 \(A_i\) をいくつか足した和で表される総得点 \…