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

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

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

AtCoder ABC 142 E - Get Everything (水色, 500 点)

個人的には bitDP は「順列を全探索するもの」というイメージがあるけど、今回はそれとはまた違う bitDP という感じ! 問題へのリンク 問題概要 個の宝箱がある。宝箱を開けるための鍵が 個あって、それぞれの鍵はいくつかの宝箱に対応している。鍵 を用いる…

AtCoder ABC 142 F - Pure (青色, 600 点)

色んな方法がありそう。 問題へのリンク 問題概要 頂点数 、辺数 の単純な有向グラフが与えられる。なお各有向辺の向きをなくして得られる無向グラフも単純であるとする (有向辺 (u, v) があったら辺 (v, u) はない)。 このグラフの有向サイクルであって、有…

第一回日本最強プログラマー学生選手権-予選- F - Candy Retribution (銅色, 1000 点)

てんぷらたんのこれを思い出した!!! yukicoder.me 問題へのリンク 問題概要 要素からなる非負整数 であって 要素を大きい順に並べたとき、 番目と 番目とが等しい という条件を満たすものの個数を で割ったあまりを求めよ。 制約 考えたこと まず、 以上 …

第一回日本最強プログラマー学生選手権-予選- C - Cell Inversion (青色, 500 点)

区間反転操作問題シリーズ!!! それにしてもいろんな見方ができる問題な気がする。 問題へのリンク 問題概要 長さ の 'B', 'W' からなる文字列 があたえられる。今この文字列に 回の操作を行う。 まだ選んでいない 2 マス を選んで区間 [ ] の 'B' と 'W' …

第一回日本最強プログラマー学生選手権-予選- D - Classified (青色, 600 点)

初見時は証明なしに再帰的にやった... 問題へのリンク 問題概要 頂点の完全グラフがあたえられる。 このグラフの辺に、非負整数値を付けていく方法のうち 整数値が等しい辺のみからなる部分グラフが奇数長のサイクルを含まない という条件を満たす範囲内で、…

第一回日本最強プログラマー学生選手権-予選- E - Card Collector (4D, 橙色, 800 点)

マトロイドだ!!!!!!! 問題へのリンク 問題概要 のボード上の 個のコマがあってそれぞれ重みがつけられている。同じマスに複数のコマが置かれていることもある。 今、各行から 1 個以下のコマを取り去る。次に各列から 1 個以下のコマを取り去る。 最…

Educational Codeforces Round 73 F. Choose a Square (R2500)

「区間」と「二次元平面上の点」とはしばしば互いに行き来することで問題が解けたりする!!! 問題へのリンク 問題概要 二次元平面上の 点が与えられる (いずれも 座標が 0 以上の格子点)。各点にはスコア が与えられる。 対角線のうちの一つが 上にあるよ…

Educational Codeforces Round 73 E. Game With String (R2400)

面白かったけど場合分けが怖かった 問題へのリンク 問題概要 "...X......XX..X..X.XXX...X..." のような '.' と 'X' からなる長さ の文字列が与えられる。 先手は連続する 個の '.' をすべて 'X' に置き換える 後手は連続する 個の '.' をすべて 'X' に置き…

Educational Codeforces Round 73 D. Make The Fence Great Again (R1700)

いかにも Greedy にできなさそうなので DP!!! 問題へのリンク 問題概要 長さ の整数数列 が与えられる。今、数列の各項の値を整数分だけ増加させるなどして、数列のどの隣り合う二項も値が異なるようにしたい。 項目を 1 増加させるのに要するコストは で…

Educational Codeforces Round 73 C. Perfect Team (R1200)

ペアリング系の問題 問題へのリンク 問題概要 以下の問題が 問出題されるのでそれぞれ答えよ: コーダーが 人、数学に強い人が 人、なんでもない人が 人いる ここからコーダー 1 人以上、数学強い人が 1 人以上を含む 3 人チームを最大何組できるか求めよ 考…

AOJ 2712 Escape (JAG 夏合宿 2015 day2-G) (500 点)

こどふぉでまったく同じ問題が出た!!! 始点の入力の仕方が異なるのみ (こっちでは始点はノード 1 に固定、こどふぉでは始点 s を入力で与える) drken1215.hatenablog.com #include <iostream> #include <vector> #include <queue> using namespace std; int N, M, S = 0; vector<long long> w;</long></queue></vector></iostream>…

AOJ 2708 ABC Gene (JAG 夏合宿 2015 day2C) (300 点)

こういうの好き。操作によって実現できるかどうかを問う問題は全体的に好き 問題へのリンク 問題概要 文字列 "ABC" に対して以下の操作を好きな回数だけ行うことで、所望の文字列 S に変形できるかどうかを判定せよ。 A, B, C のいずれかの文字を選び、文字…

Codeforces Round #586 (Div. 1 + Div. 2) D. Alex and Julian (R1900)

すごく面白かった 問題へのリンク 問題概要 (表現改) 個の正の整数 が与えられる。これらから最小個数を取り除いて、以下の条件を満たすようにせよ。 残った整数から重複を許して奇数個選ぶどのような方法に対しても、選ばれた整数を 2 つに分けてそれぞれの…

Codeforces Round #586 (Div.1 + Div.2) E. Tourism (R2200)

結構好き...だけど、完全既出だったらしい 問題へのリンク 問題概要 頂点 辺の連結な単純無向グラフが与えられる。各頂点 には重み が付いている。頂点 を始点としたウォークであって、ウォーク上のどの辺 に対してもその直後が ではない (直前に通った辺を…

はじめての DP の練習用問題まとめ ~ フィボナッチな DP ~

DP

0. DP のはじめの一歩 ふと、人生で初めて「この問題は DP だよ」という状況に直面した方が、DP へのはじめの一歩を踏み出すのに良さそうな問題たちをまとめたくなった。 DP のはじめの一歩な問題として、どんな問題がふさわしいかについて、AtCoder Educati…

Codeforces Round #584 (Div. 1 + Div. 2) F. Koala and Notebook (R2600)

勉強になった!!!!! 「辺番号または頂点番号が辞書順最小な最短路」を求める考え方が炸裂する感じ。 最短路として使われうる辺を列挙しておく (この考え方自体が典型) その辺をうまいこと活用しながら探索する という典型の流れになっている。 問題への…

AtCoder ABC 054 C - One-stroke Path (3Q, 水色, 300 点)

グラフの探索を頑張る問題。現代の AtCoder であまり見ないけど、教育的な全探索問題!!! 問題へのリンク 問題概要 頂点数 、辺数 の無向グラフが与えられる。このグラフ上で頂点 1 から出発するハミルトンパスが何本あるかを数え上げよ。 なおハミルトン…

AtCoder ABC 057 C - Digits in Multiplication (5Q, 緑色, 300 点)

整数に関する問題でまずは直面する典型的な事柄を学べる教育的問題!! 例えば整数 が素数かどうかを判定するのは、実は から まで順に試し割りすればよいという話など。 ただ、現代の ABC なら灰色 diff になりそうである。 問題へのリンク 問題概要 正の整…

AtCoder ABC 064 C - Colorful Leaderboard (茶色, 300 点)

あるあるあるある。 問題へのリンク 問題概要 人がいてそれぞれの AtCoder レーティングが与えれている。1 以上 4800 以下で、400 ごとに色が変わるという設定。 今、レーティング 3200 以上の人は自由に色を変えることができる。このとき、 人の中に存在す…

AtCoder ABC 141 F - Xor Sum 3 (黄色, 600 点)

Xor Sum シリーズしゃん。典型てんこ盛り!!! XOR は各桁ごとに独立に考えるとよい XOR に関する問題は mod. 2 での方程式みたいになることも多い であることから上位の桁から辞書順的に優先で考えるような貪欲が決まる などなど。 問題へのリンク 問題概…

AtCoder ABC 140 C - Maximal Value (4Q, 灰色, 300 点)

数学嫌いの方は問題文読んだ瞬間に一瞬敬遠心が生まれてしまうかもしれない...でも落ち着けば難しくはない 問題へのリンク 問題概要 長さ の数列 (具体的な値はわからない) に対して を満たす数列 が与えられます。 の総和として考えられる最大値を求めてく…

AtCoder ABC 061 C - Big Array (緑色, 300 点)

「k 番目を求める」に関する典型的な処理を要求される問題。 問題へのリンク 問題概要 空集合 に対して、以下の 回の操作を行う: に整数 を 個挿入する 回の操作後の S において 番目に小さな値を求めよ。 制約 考えたこと この問題の注意点として、 を具体…

AtCoder ABC 141 D - Powerful Discount Tickets (2Q, 緑色, 400 点)

問題を読み替えつつ Greedy!!! 問題へのリンク 問題概要 個の品物があって、それぞれ 円で売られている。今 枚の魔法の割引券があって、品物を買う際に割引券を好きな枚数使うことができる。 円の品物を買う際に 枚の割引券を使った場合、その品物を 円で…

AtCoder ABC 141 C - Attack Survival (灰色, 300 点)

ちょっと視点を変える感じ。 「反対側とか補集合とか余事象とか考えてみると解ける」という感じの問題は、300 点あたりからよく出てくる 問題へのリンク 問題概要 人がいてそれぞれ ポイントずつもっている。 これから ラウンドのクイズがあって、 ラウンド…

AtCoder ABC 141 E - Who Says a Pun? (水色, 500 点)

文字列検索に関するライブラリが充実していれば怖いものがない。でも文字列のことを知らなくても実は DP でも解ける!!! Suffix Array Z-algorithm (editorial 解) ロリハ + 二分探索 「ロリハ + 二分探索」の高速化 (editorial のラスト 3 行で言及された…

Codeforces Round #584 (Div. 1 + Div. 2) E. Rotate Columns (R2400)

すんごく横長な行列に関する問題だけど、実は横の長さを縦の長さ以下にできるというタイプ。 そうすれば の問題に帰着できて、。あとは の bit DP...なのだが、TLE がとれなかった。微妙に詰めが甘かった。。。 問題へのリンク 問題概要 の行列があたえられ…

Codeforces Round #584 (Div. 1 + Div. 2) D. Cow and Snacks (R1700)

面白かった! 問題へのリンク 問題概要 組の 2 整数 () があたえられる。 を満たす。この 組の 通りの順序すべてを考えたときの以下のように定義される「悲しみ」の最小値を求めよ。 「これまでに登場した整数」を表す集合を とする 各 i について、 がとも…

Codeforces Round #584 (Div. 1 + Div. 2) C. Paint the Digits (R1600)

ちょっとややこしかった 問題へのリンク 問題概要 '0' 〜 '9' からなる 文字の文字列があたえられる。各文字を白黒に塗る。 どの黒く塗られた数も、あらゆる白く塗られた数以上である 白く塗られた数を元の文字列の順序で抜き取ったとき、数値は単調非減少で…

Codeforces Round #584 (Div. 1 + Div. 2) A. Paint the Numbers (R900)

誤読して大きく出遅れた... 問題へのリンク 問題概要 個の整数 があたえられる。これを何個かのグループに分けて、各グループについて「グループ内のすべての整数がグループ内の最小値で割り切れる」という条件を満たすようにしたい。 これを実現するための…