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

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

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

SoundHound 2018 本戦 C - Not Too Close (800 点)

好き系。本番解きに行ったけど、もっとサクッと通せればよかった。 問題へのリンク 問題概要 頂点の無向グラフ (頂点の番号は 1 〜 ) であって、以下の条件をすべて満たすものの個数を 1000000007 で割ったあまりを求めよ。 頂点 1 と 2 との間の最短距離が …

SoundHound 2018 本戦 B - Neutralize (400 点)

本番では回避したん。こういうのをサッサササッとバババババーンと解けるようになりたい。 問題へのリンク 問題概要 個の数列 が与えられる。以下の操作を好きな回数だけ行って得られる数列の総和を最大化せよ。 連続する 個の区間の数列を一斉に 0 にする …

SoundHound 2018 本戦 A - Feel the Beat (300 点)

区間の重なりを求める処理、結構久しぶりなん。 問題へのリンク 問題概要 2 で何回か割ると 140 以上 170 未満になる正の整数を「よい数」と呼ぶ。 C 以上 D 未満の整数のうち「よい数」は何個あるか求めよ。 制約 < 考えたこと まともにカウントすると間に…

AOJ 2730 Line Gimmick (JAG 模擬地区 2015 D) (300 点)

星 1 個ついてるし、面白かった。「予想」を正しく立てられるかどうかがポイント。最初はカッコ列系の考察するのかと思って迷走した。 問題へのリンク 問題概要 >><><<< みたいな文字列が与えられる。最初にどこを踏んでも良い。踏んだパネルは消えて、その…

AtCoder AGC 013 C - Ants on a Circle (橙色, 700 点)

蟻さんぐるぐるなのん 問題へのリンク 問題概要 (AGC 013 C) 長さ の円周上を 匹の蟻が動く。どの蟻も 1 秒間に 1 だけ動く。互いに反対方向に動いている 2 匹の蟻がぶつかったら、互いに向きを反転させて動く。 匹の蟻は最初 の地点にいた。どの蟻が最初に…

AtCoder ARC 100 E - Or Plus Max (黄色, 700 点)

高速ゼータ変換の練習第二弾! 問題へのリンク 問題概要 長さ の整数列 があります。 を満たすすべての整数 について、以下の問題を解け: を < , を満たす整数とするとき、 の最大値を求めよ。 制約 考えたこと 個の要素を一斉に変換する何かをさせている感…

2018 codeFlyer 本選 F - 配信パズル (800 点)

本番中なんとか解けたけど、すごくグチャグチャしたん。 問題へのリンク 問題概要 すぬけ君は、 日間にわたって、毎日次のようなパズルを解こうとしている。 すぬけ君の持っている端末に、縦 行、横 列からなる格子状の盤面が毎日配信されてくる。それぞれの…

AOJ 2879 ごちうさ数 (RUPC 2018 day1-F)

RUPC 2018 の思い出。桁 DP。 問題へのリンク 問題概要 ごちうさ数とは、10 進法表記において「5?13」を含む正の整数のことである。? は 0〜9 のいずれでもよい。 以下の正の整数のうち、ごちうさ数が何個あるかを求めよ。 制約 解法 桁 DP。 一目、51?3 の…

AOJ 1601 短句 (ICPC 国内予選 2015 B) (150 点)

なにこの 575 検出器!!!解法自体は Greedy にやるだけ 問題へのリンク 問題概要 57577 を検出せよ。 複数あるときは一番先頭を検出せよ。 do the best and enjoy today at acm icpc の場合は先頭から dothe bestand enjoy todayat acmicpc で 57577 なの…

AOJ 2613 Unordered Operators (JAG 夏合宿 2013 day3-G) (350 点)

構文解析練習第三弾。AOJ-ICPC 350 点。 問題へのリンク 問題概要 (5-3*4)*(0-2+1) のような以下の BNF で定義される計算式が与えられる: <expr> ::= ( <expr> ) | <number> | <expr> <op> <expr> <op> ::= + | - | * ただし、通常の演算の優先順位は「*」 -> 「+」「-」であるが、今回はどのように優</op></expr></op></expr></number></expr></expr>…

AOJ 2401 恒等式 (JAG 模擬国内 2012 C)

せっかく構文解析の練習を少ししたので 問題へのリンク 問題概要 -(a+b)=(-a*-b) (a->b)=(-a+b) ((a*T)+b)=(-c+(a*-b)) のような式たちが恒等式かどうかを判定せよ。すなわち、a や b や c に true と false をどのように当てはめても結果が一致するかどうか…

2018 codeFlyer 本選 E - 数式とクエリ (700 点)

構文解析、超絶苦手系だけど苦手とばかり言っていられない。 問題へのリンク 問題概要 (a)*a+((a+(a*(a))-(a)*a+a*a))*a のような文字列 が与えられる。各 a に入るデフォルトの数値 が与えられている。今 個のクエリが来て、各クエリは : 個目の a を で置…

AtCoder ABC 099 D - Good Grid (水色, 400 点)

「前処理」を学べる問題ですね。 問題へのリンク 問題概要 色が全部で 色ある。 × の盤面がそれぞれ 色のいずれかに塗られている。今この盤面の色を塗り替えて マス () について % 3 の値によって色を類別された状態 (その値が同じマスは同じ色に、違うマス…

AtCoder ABC 103 D - Islands War (水色, 400 点)

問題へのリンク 実は、こないだの RUPC 2018 で出てた (最後の部分のみほぼ同じ) AOJ 2873 - 検閲により置換 見た目は区間スケジューリング問題とは違うけど、実は区間スケジューリング問題 (こういうの双対問題と言ったりする)。双対性の知識がまったくなく…

AtCoder ABC 103 C - Modulo Summation (茶色, 300 点)

が互いに素でない場合とか一瞬だけ怖くなるけど、信じて提出する!!!!!!! 問題へのリンク 問題概要 個の整数 が与えられる。 様々な非負整数 に対して を で割ったあまり を で割ったあまり を で割ったあまり の総和を考えたとき、その最大値を求めよ…

AOJ 2427 ほそながいところ (JAG 夏合宿 2012 day2-D) (800 点)

「全探索でもここまで難しいやつもある」という例としてよく挙げられる問題。 ここのページに僕なりの 全探索 重み付き Union-Find 木を使いながら判定 をした解法を記した。

AOJ 2589 North North West (JAG 模擬地区 2014 A) (200 点)

とにかく言われた通りにやる 問題へのリンク 問題概要 northnorthwest (北北西) のように言われて、それを真北方向から何度ずれているかを既約分数で表示せよ (上の例の場合は 45/2) 考えたこと 詳細仕様が問題文中にあるので、とにかく言われた通りに頑張る…

CS Academy 076 DIV2 D - Pyramids

えーーーーー、どうしてバグに気づかなかった。。。orz 問題へのリンク 問題概要 x 軸上に斜辺を持つような直角二等辺三角形 (三頂点はどれも格子点) が N 個与えられる。N 個の直角二等辺三角形によって被覆される格子点の総数を求めよ。 制約 1 <= N <= 10…

AOJ 2224 Save your cat (JAG 夏合宿 2010 day4-C) (500 点)

これ面白い!!!!!!!! 好き!!!!!!! 問題へのリンク 問題概要 平面上に 個の点の座標 と、それらを結ぶ 本の線分がある。 線分のある部分は通過ができないので、線分に囲われた領域とその外側の領域とは行き来することができない。 そこでいくつ…

AOJ 1149 ケーキカット (ICPC 国内予選 2007 C) (300 点)

AOJ-ICPC 300 点。 問題へのリンク 問題概要 (略) ケーキをカットして行ってできるピースの面積をそれぞれ答えよ 考えたこと ケーキの中がどう分割されているかは一切関係ないので、毎回バラバラなピースがあってそこから 1 個選んで分割してそれを最後尾に…

CS Academy 084 DIV1 C - Split the Sticks

これは楽しい 問題へのリンク 問題概要 個の整数 が与えられる。 今ある整数の中から 1 個 ( とする) を選んで、好きな整数 を選んで、 を と に分裂させる という操作を繰り返して、最終的に得られる整数の集合が、まったく同一の 2 つの集合に分けられるよ…

CS Academy 084 DIV1 B - Three Ones

treeone さん... 問題へのリンク 問題概要 0 と 1 からなる長さ N の文字列 S が与えられる。 どの連続する K 個の中にも 1 が 3 個以上含まれている という条件を満たすような最小の K を求めよ 制約 3 <= N <= 105 S の中に 1 は 3 個以上含まれる 解法 右…

AOJ 1188 階層民主主義 (ICPC 国内予選 2013 C) (350 点)

超苦手系だと思いながら恐る恐る実装したら、ノーデバッグでサンプル全部通った上に、そのまま提出したら AC もらえて超ビックリした!!! パースして木構造作って木 DP 的なことをするのが主流かもだけど、なんかもっとアドホックにできた。 問題へのリン…

Codeforces Round #190 (Div. 1) C. Ciel the Commander (R2100)

てんぷら君が解いていたのを見て... 問題へのリンク 問題概要 頂点のツリーが与えられる。 ツリーの各頂点に 'A' 〜 'Z' のラベルを割り当てたい。アルファベット順に rank が低くなっていくものとする ('A' が最高ランク)。 任意の 2 頂点 u, v について、u…

AOJ 1150 崖登り (ICPC 国内予選 2007 D) (400 点)

難しくはないけど、実装が少し辛い。 問題へのリンク 問題概要 (略) 基本的にはグリッド上を移動していく最短路問題だけど、色々制約が付随している 考えたこと 一目見て Dijkstra 法が使えるとわかるけど、面倒... ポイントになりそうなのは、「左足」を動…

AtCoder AGC 026 C - String Coloring (青色, 600 点)

なんかこれは TL で「 という制約が意味するものは...!?」という感じの TL を先に見てしまった。。。 とはいえ確かに半分全列挙一択ではあるか... 問題へのリンク 問題概要 (AGC 026 C) 長さ の、英小文字のみからなる文字列 が与えられる。 の各文字を赤…

p で割って r 余る数のうち x 以上となる最小の数

なんか登場頻度高い割にいつも混乱するので...ちょっとちゃんと整理したいなと。。。 なんかこうすべきというのがあったらちゃんと勉強したい。 r = 0 のとき の倍数のうち、 以上となる最小の値を求めたい。 これはいわゆる「 を で割って、あまりを切り上…

AtCoder AGC 026 B - rng_10s (青色, 600 点)

あーーーーーー、これは大好物系なん!!!!! 本番でやってみたかったん!!!!! 問題へのリンク 問題概要 (AGC 026 B) 整数 があたえられる。 最初は在庫に 個あって、 毎日 個ずつ消費される その日の最後に 個以下しか残っていなかったら 個補充され…

AtCoder AGC 026 A - Colorful Slimes 2 (灰色, 200 点)

最初スライムの色の種類が 種類かと思ってしまって、 の場合が面倒じゃないかと思ってしまった。 Colorful Slimes 2 へのリンク 問題概要 (AGC 026 A) 1〜10000 の整数からなる 要素の数列が与えられる。 数列の好きな箇所を選んで 1〜10000 のうちの好きな…

みんなのプロコン 2018 決勝 A - Uncommon (包除原理)(600 点)

という制約の意味に気がつくのにかなり時間がかかった。これのおかげで「 の中に の倍数が何個あるか」というのが、 ではなく でできる。 問題へのリンク 問題概要 個の相異なる整数 と、整数 が与えられる。各 に対して、 のうち と互いに素なものが何個あ…