けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

2018-09-01から1ヶ月間の記事一覧

AtCoder ARC 103 E - Tr/ee (青色, 700 点)

取り急ぎ... 問題へのリンク 問題概要 N 頂点からなるツリーがあって、各辺で切ってできる連結成分のサイズとしてありうるものすべて集めたものが指定される。そのようなツリーを 1 つ構築せよ。存在しない場合は -1 とせよ 解法 とりあえず、 サイズ 1 は絶…

AtCoder ABC 111 D - Robot Arms (ARC 103 D) (3D, 橙色, 600 点)

くやしい 問題へのリンク 問題概要 個の座標 () が与えられる。 今、40 本以下の正の整数 を用意して、それぞれについて (), (), (), () をうまく選択して加算することで、() をすべて作れ。できないときは -1 とせよ。 各 について共通の を用いなければな…

AtCoder AGC 008 D - K-th K (2D, 黄色, 800 点)

実装は手こずったものの、それなりに自信のある Greedy を提出できて一発 AC できてよかった 問題へのリンク 問題概要 1 〜 の値を 個ずつもつ長さ の数列であって、 各 について、 番目の値が 個目の である という条件を満たすものを 1 つ構築せよ。条件を…

AtCoder ARC 004 D - 表現の自由 (試験管黄色)

これがインフレ!?ABC 110 D - Factorization に瓜二つ 問題へのリンク 問題概要 整数 を 個の整数の積として表す方法が何通りあるかを、1000000007 で割ったあまりを求めよ。 制約 考えたこと ほとんど、ABC 110 D - Factorization と一緒。 だが、マイナ…

AOJ 1167 ポロック予想 (ICPC 国内予選 2010 C) (250 点)

いわゆる、重複ありのナップサック問題 問題へのリンク 問題概要 整数 を最小個数の四面体数 (重複あり) の和として表せ。 解法 四面体数は、mC3 の形で表される。 重複ありのナップサックも、うまくやれば、種類数の線形オーダーで効率的に解けることの練習…

AOJ 3047 Shiritori (AUPC 2018 day3 I)

これはコンテスト本番にて、すぐに解けてよかった 問題へのリンク 問題概要 個の単語 (いずれも英小文字) が与えられる。これらの単語の列が極大しりとりであると は、 しりとりである しりとりの最後尾に続けられる単語がもう残っていない ようなものを指す…

AOJ 2370 RabbitWalking (JAG 冬合宿 2010 day3-B) (600 点)

これを解いていたおかげで ARC 099 E - Independence がすぐに思いつけた感はあるかも。むしろ制約的に ARC 099 E の完全上位互換だと言える。 問題へのリンク 問題概要 頂点 辺の無向単純グラフが与えられる。 このグラフが「奇数長のサイクルがない」とい…

AOJ 3044 Timing (AUPC 2018 day3 F)

整数の三分探索は闇... 問題へのリンク 問題概要 頂点 辺の無向グラフが与えられる。時刻 0 に頂点 を出発し、頂点 まで移動するのに要する最小時間を求めよ。 各辺にはパラメータ が設定されていて、時刻 にその辺の片側の頂点から出発した場合、もう片側の…

AtCoder AGC 004 D - Teleporter (黄色, 800 点)

こういう系の問題、なかなか提出が怖くなるやつ。こういうのは背水の陣状態じゃないと躊躇してしまいそう... 問題へのリンク 問題概要 頂点数 、辺数 の有向グラフが与えられる。 どの頂点から出る辺数も 1 どの頂点から出発しても必ずノード 1 (root) にた…

AOJ 3045 Painting (ACPC 2018 day2 G)

コンテスト本番、つたじぇーが頑張って通してくれた!!! 問題へのリンク 問題概要 長さ の数列 が与えられる。初期状態では の要素は全て 0 である。加えて、 個の整数のペア()が与えられる。各ペアに対し以下の操作を行い、最終的な数列 を出力せよ。 各 …

技術室奥プログラミングコンテスト #2 E - 歩くNPCたち(Walking NPCs)

えーーーこれが平方分割的解法って天才すぎでは 問題へのリンク 問題概要 人が一直線上を、初期位置 、速度 で等速直線運動を行う。以下の 個のクエリに答えよ: 秒後に座標 から座標 までの間にいる人数を数えよ 制約 考えたこと が 以下と小さいことが大き…

AtCoder AGC 003 D - Anticube (橙色, 1100 点)

とくらちゃん・シンヤカトー・てんぷらたんたちと気合いで解いた。 問題へのリンク 問題概要 個の正の整数 が与えられる。この中から最大個数の要素を取り出して どの 2 つをとってもその積が立方数とはならない という条件を満たすようにせよ。 制約 解法 …

AOJ 2895 回文部分列 (AUPC 2018 day3 G)

すごく大好きな問題! 部分列を走査する考え方をちゃんとわかっていれば自然に解くことができる。 問題へのリンク 問題概要 文字列 が与えられる。 の部分文字列のうち回文となっているものが何通りあるか、1000000007 で割ったあまりで求めよ。 制約 は英小…

AOJ 2894 01 文字列と窓 (AUPC 2018 day3 F)

丁寧に考えれば解ける感じ 問題へのリンク 問題概要 0 と 1 のみかならなる長さ N のビット列 S, T が与えられる。S に以下の操作を好きな回数だけ行って T にするのに必要な最小回数を求めよ。 (というクエリが Q 回投げられる) S の最も右にある 1 を含む…

AOJ 2893 均衡な辺削除 (AUPC 2018 day3 E)

あの激熱展開を繰り広げた会津合宿北大セットの E 問題。 「橋以外を壊した方がいいケースもある」ということに終盤間際で気づいてからの、残り 14 秒で通せたのは感動した!!!!!!! こたつがめさん・シンヤカトーありがとーーー コンテストでは、「二…

AtCoder ARC 039 D - 旅行会社高橋君 (試験管橙色)

二重辺連結成分分解ライブラリを整えた。 問題へのリンク 問題概要 N 頂点, M 辺の無向単純グラフにおいて、以下の Q 個のクエリに答えよ。 A B C: A から出発して B に行くウォークと、B から出発して C に行くウォークの組のうち、辺を共有しないものがあ…

Codeforces Round #511 (Div. 1) A - Enlarge GCD (R1800)

大昔 osa_k 法と呼ばれていたやつ。 問題へのリンク 問題概要 個の整数 が与えられ、 をこれらの最大公約数とする。 今、 個の整数から何個かを取り除いて、その最大公約数が より大きくなるようにしたい。取り除くべき最小個数を求めよ。ただし、どのように…

AtCoder ABC 110 C - String Transformation (緑色, 300 点)

ごめんなさい!!!!! コンテスト中に僕が AC した解法は嘘解法でした (てんぷらさんたちに教えてもらいました)!!! 嘘解法 :https://beta.atcoder.jp/contests/abc110/submissions/3251109 S と T の各文字の個数をカウントして、それぞれ個数ベクトル…

AtCoder ABC 110 D - Factorization (青色, 400 点)

素因数分解 & 重複組合せ を勉強できる、すごく教育的問題だった!!! 問題へのリンク 問題概要 整数 が与えられる。 を満たす整数の組 () が何通りあるか、1000000007 で割った余りで求めよ。 制約 解法 素因数分解っぽいテーマの問題。こういうのは「まず…

Codeforces Round #511 (Div. 1) B. Little C Loves 3 II (R2200)

なんとか解けてよかった 問題へのリンク 問題概要 × の二次元グリッド盤面が与えられる。 空いているマスを 2 つ選んで、その 2 つに駒を置く。ただしその 2 マス間のマンハッタン距離が 3 でなければならない という操作を繰り返し行う。こうして出来上がる…

CODE FESTIVAL 2018 qual A C - 半分 (500 点)

少し重たい 問題へのリンク 問題概要 長さ の整数列 が与えられます。 この数列に以下の操作をちょうど 回施します。 添字 を一つ選んで、 を 2 で割る (小数点以下切り捨て) 回の操作のあとの数列としてありうるものの個数を 109+7 で割ったあまりを求めよ…

CODE FESTIVAL 2018 qual A D - 通勤 (700 点)

ひたすらバグってつらかった。。。DP 高速化系。セグ木を使ってもいいが、累積和だけで解ける。 問題へのリンク 問題概要 座標 地点から座標 地点へと移動する。 移動途中に 個のガソリンスタンドがあって、それらの座標は で与えられる。 燃料 の状態でスタ…

CODE FESTIVAL 2018 qual A E - オレンジとみかん (800 点)

解き切りたかった 問題へのリンク 問題概要 オレンジが 個、みかんが 個ある。これを 人で分け合う ( が の倍数であることは保証される)。 それぞれの人 について、オレンジとみかんそれぞれ 1 個あたりの満足度が で与えられる。 うまく分けて、各人の満足…

AtCoder ARC 081 E - Don't Be a Subsequence (黄色, 600 点)

部分列 DP の考え方を試せる問題 問題へのリンク 問題概要 文字列 A が与えられる。 A の部分文字列とはならないような文字列 (英小文字のみ) のうち、最短の長さのものを求めよ。 複数考えられる場合にはそのうち辞書順最小のものを求めよ。 制約 1 <= |A| …

AOJ 2892 しりとり圧縮 (AUPC 2018 day3 D)

迷走しないようにしたい問題。 問題へのリンク 問題概要 banana at tomb but tos sound does some のようなしりとりが与えられる。同じ文字で始まるところは 1 つにつぶすことができる。上の例で言えば (banana at tomb but) (tos) (sound does some) という…

AOJ 2891 な◯りカット (AUPC 2018 day3 C)

サイクルが 1 個だけある連結グラフ、すなわち「木」に辺を 1 個くわえてできるグラフのことを、なもりグラフと呼ぶことにする。 問題へのリンク 問題概要 N 頂点のなもりグラフが与えられる。以下の Q 個のクエリに答えよ。 2 頂点 a, b の間を分断するのに…

AOJ 2890 ピボット (AUPC 2018 day3 B)

勉強になった。 問題へのリンク 問題概要 1 〜N の順列 a1, a2, ..., aN が与えられる。 この順列に対して Q 個のクエリが順に与えられる。i 番目のクエリでは次の操作をしなければならない: 値 q が与えられる。順列 {a1, a2,…,aN} において qiの左側の順列…

AtCoder ARC 091 E - LISDL (青色, 700 点)

問題へのリンク 問題概要 1, 2, ..., N を並べ替えてできる列であって、以下の条件を満たすものがあるかどうか判定し、あればその例をひとつ構成せよ: 最長増加部分列の長さは A 最長減少部分列の長さは B 制約 1 <= N, A, B <= 3 × 105 解法 LIS and LDS と…

CS Academy 070 DIV1 E - Squared Ends

Convex Hull Trick の練習に。 問題へのリンク 問題概要 長さ の数列 が与えられる。数列を 個の区間に分割して、各区間 [, ] についての の総和を最小にせよ。 制約 解法 いかにも な DP になるのを頑張って高速化する系の問題。2 乗だから convex hull tri…

COLOCON 2018 Final C - スペースエクスプローラー高橋君 (600 点)

Convex Hull Trick の練習に。DP ではないけど、DP 高速化でよくやる Convex Hull Trick の構造そのものを試せる問題。Convex Hull Trick についての詳しい解説は Convex-Hull Trick (satanic さん) がとてもわかりやすい! 問題へのリンク 問題概要 長さ の…