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

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

入力が定数個

JOIG 2021 A - 金平糖 (AOJ 0701, 難易度 1)

入出力の練習をしましょう。 問題へのリンク editorial 問題概要 3 人の生徒がそれぞれ 個、 個、 個の金平糖をもらいました。 これからそれぞれの生徒たちに何個かの金平糖を追加で渡すことで、3 人の生徒がもらった金平糖の個数が等しくなるようにしたいと…

AtCoder ABC 212 G - Power Pair (黄色, 600 点)

原始根が絡む問題は時々出るイメージですね。 問題へのリンク 問題概要 素数 が与えられます。 次の条件を満たす整数 の組の個数を 998244353 で割ったあまりを求めてください。 ある正の整数 が存在して、 が成立する 制約 は素数 考えたこと 整数問題とい…

AtCoder ABC 077 D - Small Multiple (ARC 084 D) (橙色, 700 点)

これほどシンプルな問題がグラフ最短路問題になるのは感動的ですね! 問題へのリンク 問題概要 の正の倍数をすべて考えたときの、各桁の和として考えられる最小値を求めてください。 制約 うまく数字を並べるゲームと捉える の倍数をひたすら試す方法をまず…

AtCoder ABC 206 E - Divide Both (青色, 500 点)

約数系包除原理の教育的問題 問題へのリンク 問題概要 整数 が与えられるので、以下の条件を満たす整数 の組の個数を求めてください。 としたとき、, , 制約 解法 (1):約数系包除 まさに約数系包除原理の教育的良問。この問題をきっかけとして、次の記事を…

JOI 春合宿 2007 day2-2 Fermat (難易度 7)

これ FFT を使えば でもできるね。実際は で間に合う。 ジャッジページ 問題文 問題概要 正の素数 と、正の整数 が与えられる。 は 以上 以下の整数 を満たすような の組の個数を求めよ。 制約 は素数 考えたこと まずは次のように集計処理をしよう。このよ…

AOJ 3209 Times Square (OUPC 2020 A)

ABC C にありそうな教育的問題! 問題へのリンク editorial 問題概要 正の整数 が与えられる。 かつ を満たすすべての整数組 についての の総和を 1000000007 で割ったあまりを求めよ。 制約 (テストケース数) 考えたこと 結局、 を計算すればよい。それぞれ…

Codeforces Round #687 (Div. 1) A. Bouncing Ball (R1400)

個置きに累積和をとるの、3 ヶ月前の僕だったら思いつかなかったかもしれない。 問題へのリンク 問題概要 整数 が与えられる。また、長さ の 0 と 1 のみからなる文字列 が与えられる。文字列 に対して以下の操作を行うことができる。 文字列 中の文字 "0" …

AtCoder AGC 049 D - Convex Sequence (橙色, 1000 点)

最初は二次元 FFT が必要な気分になっていて右往左往していた。個数制限なしナップサック問題になるのは面白かった! 問題へのリンク 問題概要 正の整数 が与えられる。長さ の非負整数列 であって という条件を満たすものの個数を、1000000007 で割ったあま…

AtCoder AGC 038 A - 01 Matrix (緑色, 300 点)

これは天才パズル!!! 問題へのリンク 問題概要 のグリッドに 0, 1 の数値を書き込む方法であって、 どの行をみても、それに含まれる 0 の個数と 1 の個数のうちの小さい方の個数が どの列をみても、それに含まれる 0 の個数と 1 の個数のうちの小さい方の…

AtCoder AGC 040 C - Neither AB nor BA (橙色, 800 点)

これまた楽しい数え上げ!!! 解説があまりにも天才だけど、解説の方法が思いつかなくても一応できた!!! 問題へのリンク editorial 解説放送 問題概要 "A", "B", "C" のみからなる長さ の文字列であって、以下の条件を満たすものの個数を 998244353 で割…

AtCoder AGC 036 C - GP 2 (黄色, 900 点)

こういう数え上げ、大好きすぎる!!! 問題へのリンク 問題概要 長さ の数列 がある。初期状態ではすべての値が 0 となっている。この数列に以下の操作をちょうど 回行って得られる数列が何通りあるか、998244353 で割ったあまりを求めよ。 となる を選んで…

AtCoder AGC 041 C - Domino Quality (黄色, 900 点)

構築楽しかった 問題へのリンク editorial 問題概要 のグリッド上に のドミノを互いに重ならないように配置していく。 どの行・列を見ても、その行・列上にある のドミノの個数が互いに等しいような配置を求めよ。存在しない場合は "-1" を出力せよ。 制約 …

AtCoder AGC 021 A - Digit Sum 2 (灰色, 300 点)

少し慎重に 問題へのリンク 問題概要 以下の正の整数の 10 進法での各桁の和の最大値を求めよ。 制約 考えたこと とかだったら答えは になりそうだ。一般に、 の形をしたものだけ考えれば良さそう。仮に とかが最適解だったとしても、その場合は として、 も…

AOJ 2116 Subdividing a Land (JAG 冬合宿 2007 E)

Pell 方程式!!! 問題へのリンク editorial (day2-E) 問題概要 (意訳) 正の整数 が与えられる。 を正の整数として、 の値が最小となるような を 1 つ求めよ。 制約 考えたこと が平方数のときは として、 が答えとなる (最適値は 0)。 が平方数でないとき…

AOJ 1610 竹の花 (ICPC 国内予選 2016 C) (250 点)

面白い。けど問題文長い...。問題概要を短くまとめてみた。 問題へのリンク 問題概要 正の整数 が与えられる。 あなたは、 以上の整数を 個用意する ( とする)。この 個の整数のスコアを、以下の条件を満たす最小の整数 として定める。 は のいずれでも割り…

AOJ 2858 Prime-Factor Prime (JAG 模擬地区 2017 C) (350 点)

貴重な区間篩の問題 問題へのリンク editorial 問題概要 2 つの正の整数 が与えられる。以下の条件を満たす整数 の個数を求めよ。 の相異なる素因数の個数が素数個 制約 考えたこと が小さいので、それを活かした解法が考えられそう。具体的には区間篩が使え…

AOJ 2629 Manhattan (JAG 夏合宿 2014 day2-A) (250 点)

伝説のりんごさんセットの 1 問目 問題へのリンク 問題概要 二次元座標平面上において、 座標と 座標のうちの少なくとも一方が整数であるような点からなる集合を「道路」と呼ぶ。 道路上の 2 点 のユークリッド距離が実数 で与えられる。 点 から道路のみを…

AtCoder ARC 107 D - Number of Multisets (黄色, 600 点)

いろんな DP が考えられそう! 問題へのリンク editorial 問題概要 正整数 が与えらる。以下の条件を全て満たす有理数の多重集合は何種類存在するか、998244353 で割ったあまりを求めよ。 多重集合の要素数は 多重集合の要素の総和は 多重集合の要素は全て (…

AtCoder ARC 107 A - Simple Math (灰色, 300 点)

よくある式変形問題 問題へのリンク 問題概要 3 つの正の整数 が与えられる。 を 998244353 で割ったあまりを求めよ。 制約 考えたこと 求める値は に一致する。あとは modint を活用すれば求められる! コード #include <bits/stdc++.h> using namespace std; // modint te</bits/stdc++.h>…

KUPC 2020 C - Grid and Substrings

山登り法で見つかった!スコアが下がっていくのを眺めるの快感! 問題へのリンク 問題概要 のグリッドに以下の条件を満たすように英小文字を入れよ。 横方向、縦方向に連結しているマス目を抜き出してできる文字列は 個ある そのすべてが互いに相異なる これ…

AOJ ???? Counting Angels (KUPC 2020 G)

こういう条件を言い換えながら数え上げる問題好き! 問題へのリンク 問題概要 タプリスちゃんは現在、長さ 1 の数列 を持っている。 タプリスちゃんは に対して、以下のいずれかの操作を選んで行うことを 回繰り返すことにした。 の末尾に または を追加する…

AtCoder ARC 058 E - 和風いろはちゃん (橙色, 700 点)

5 + 7 + 5 = 17 なの、よくできてる! 問題へのリンク 問題概要 正の整数 が与えられる。 以上 以下の数値からなる長さ の数列 であって、以下の条件を満たすものの個数を 1000000007 で割ったあまりを求めよ。 整数 が存在して、 の区間 の総和が の区間 の…

Codeforces Round #597 (Div. 2) F. Daniel and Spring Cleaning (R2300)

桁 DP 苦手すぎる... 問題へのリンク 問題概要 整数 が与えられる。整数の組 であって、 xor = を満たすものの個数を求めよ。 (というテストケースが 個与えられる) 制約 考えたこと とりあえず、 xor = という条件は 「 と を二進法表現したときに、ともに …

CPSCO2019 Session3 F - Flexible Permutation (600 点設定)

このセットの writer をしていました 問題へのリンク 問題概要 を並び替えてできる数列 は 通りあるが、そのうち以下の条件を満たすものが何通りあるかを、1000000007 で割ったあまりを求めよ。 を満たすような がちょうど 個 を満たすような がちょうど 個 …

AtCoder AGC 015 D - A or...or B Problem (橙色, 900 点)

最初、「これは本当に AGC か!??」となってた 問題へのリンク 問題概要 以上 以下の整数の中からいくつか選んで、OR 和をとってできる値が何通りあるか求めよ。 制約 考えたこと 一見するとこどふぉっぽい見た目の問題だけど、実はすごく AGC っぽい感じ…

CODE FESTIVAL 2016 Final B - Exactly N points (緑色, 300 点)

1, 2, ..., i のうちのいくつか選んで和を取った値は、連続した自然数を作れる 問題へのリンク 問題概要 からいくつか選んでできる総和が となるようにしたい。 選んだ数の最大値が最小となるような場合の数を求めよ。 制約 考えたこと 一般に、 によって作…

HHKB プログラミングコンテスト 2020 D - Squares (青色, 400 点)

これ、「重なるものを数える」という風に考えれば、縦方向と横方向を独立に考えれば良いことに気付けるかが結構ポイントっぽい 問題へのリンク 問題概要 整数 が与えられます。 辺の長さが の白い正方形を座標平面の に 4 頂点が重なるように置きます。 次に…

AtCoder ARC 104 D - Multiset Mean (黄色, 700 点)

すごく NTT したくなる 問題へのリンク 問題概要 正の整数 が与えられる。 をそれぞれ 個以上 個以下とってくる方法のうち、平均が となるものの個数を素数 で割ったあまりを、各 に対して求めよ。 制約 考えたこと まず、平均制約を次のように言い換える。…

Codeforces Grakn Forces 2020 F. Two Different (R2300)

ならば になるネタ、結構見る! 問題へのリンク 問題概要 数列 があって、初期状態では となっている。ここで 2 つの正の整数の組 に対して正の整数 を返す関数 を考える。 次の条件を満たす操作列を構築せよ。1 つの操作は整数 で与えられ、 , をともに で…

AOJ 3169 Pyramid Graph (HUPC 2020 day1-F)

ゴリ (prd さん) と一緒に出て楽しかったコンテスト。 そして「グラフのサイクル・パスの列挙」に関する問題は北大セットの定番というイメージになってきた。 問題へのリンク 問題概要 下図のような 角錐が与えられる (底面が 角形で "頂点" の頂点番号を 0 …