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

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

等差数列

AtCoder ABC 369 C - Count Arithmetic Subarrays (3Q, 灰色, 300 点)

とても教育的で典型的なしゃくとり法の問題! 問題へのリンク 問題概要 個の整数からなる数列 が与えられる。 が等差数列であるような組 の個数を求めよ。 制約 解法 (1):しゃくとり法 今回の問題のように、数列中で条件を満たす区間を考える問題では、しゃ…

AtCoder ABC 369 A - 369 (6Q, 灰色, 100 点)

偶数と奇数に関する理解も問われる問題。 問題へのリンク 問題概要 2 つの整数 が与えられる。 「 を並び替えると等差数列をなす」 という条件をみたすような整数 が何通りあるか求めよ。 制約 解法 (1):数学的に解く まず、 の大小関係で場合分けして考え…

AtCoder ABC 340 A - Arithmetic Progression (7Q, 灰色, 100 点)

for 文を使って、等差数列を実現する! 問題へのリンク 問題概要 初項が 、末項が 、公差が であるような等差数列を出力せよ。 なお、そのような等差数列が存在する入力のみが与えられる。 考えたこと 等差数列の中でも、次のようなものは我々はいつも実装し…

AtCoder ABC 058 A - ι⊥l (9Q, 灰色, 100 点)

が等差数列かどうかを判定する問題 問題へのリンク 問題概要 3 つの整数 が等差数列かを判定せよ。 すなわち、 であるかどうかを判定せよ。 解法 問題文の通りに、b - a == c - b かどうかを判定すれば OK。 #include <bits/stdc++.h> using namespace std; int main() { in</bits/stdc++.h>…

AtCoder ABC 043 A - キャンディーとN人の子供イージー (8Q, 灰色, 100 点)

等差数列の和の公式を使ってもいいし、素直に for 文を足してもいい。 問題へのリンク 問題概要 正の整数 が与えられる。 の値を答えよ。 解法 1 素直に for 文で足していく方法。 #include <bits/stdc++.h> using namespace std; int main() { int N; cin >> N; int res = </bits/stdc++.h>…

AtCoder ABC 201 A - Tiny Arithmetic Sequence (7Q, 灰色, 100 点)

意外と頭がこんがらがるかもしれないですね。100 点問題で必須となるテクニックではないですが、ソートすると考えやすいと思います。 問題へのリンク 問題概要 個の整数 が与えられる。 これら 個の整数を適切に並び替えることで、等差数列にすることが可能…

AOJ 3209 Times Square (OUPC 2020 A)

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

Codeforces Round #687 (Div. 1) C. New Game Plus! (R2200)

すごい面白い!! 問題へのリンク 問題概要 体の敵がいて、敵に付随するスコアはそれぞれ で与えられる (負数になることもある)。 これらの敵を順に倒していきたい。Boss Score, Total Score と呼ばれる値が初期状態ではともに 0 となる。敵 を倒すとき、次…

AtCoder ARC 109 B - log (茶色, 400 点)

二分探索でやればよさそう。本当は でもできるのかも。 問題へのリンク 問題概要 正の整数 が与えられる。 整数 のうち、いくつか選んだものが以下の条件を満たすようにしたい。そのような選び方のうち、選ぶ個数の最小値を求めよ。 選んだ整数はいくつかの…

AOJ 3165 Triangle Addition (HUPC 2020 day1-B)

いもす法 問題へのリンク editorial 問題概要 要素からなる数列がある。初期状態では全要素の値が 0 である。以下の 回の操作を行なって得られる数列を出力せよ。 各クエリでは整数 が与えられる。区間 に対して、初項 1、交差 1 の等差数列を加算する 制約 …

AtCoder ABC 163 D - Sum of Large Numbers (緑色, 400 点)

「作れる数が連続する整数になる」というの、実は結構よくある!! 問題へのリンク 問題概要 個の整数 がある。 これらから 個以上の整数を選んで合計して得られる整数としてありうるものの個数を 1000000007 で割ったあまりを求めよ。 制約 考えたこと まず…

AtCoder ABC 162 D - RGB Triplets (茶色, 400 点)

落ち着いて頭を整理。。。 問題へのリンク 問題概要 'R', 'G', 'B' のみからなる長さ の文字列 が与えられる。 の index の組 であって、 と と はすべて互いに異なる である という条件を満たすものの個数を求めよ。 制約 考えたこと 頭がごっちゃになりそ…

Codeforces Round #625 (Div. 1) A. Journey Planning (R1400)

面白かった 問題へのリンク 問題概要 要素の数列 が与えられる。以下の条件を満たすような部分数列のうち、要素和の最大値を求めよ。 抜き出した数列のどの 2 項についても「値の差分」と「index の差分」とが等しい 制約 考えたこと たとえば の場合は、こ…

AtCoder ARC 007 D - 破れた宿題 (2D, 試験管橙色)

一瞬激ヤバに見えるし、コーナーケースの数もえげつないけど、とりあえず最小の初項はすぐにわかると... 問題へのリンク 問題概要 等差数列があった。 等差数列を concat して得られる文字列から、先頭から何文字かと、末尾から何文字かを削除して得られた文…

AOJ 1390 Arithmetic Progressions (ICPC アジア 2018 B) (300 点)

面白かった 問題へのリンク 問題概要 個の整数 が与えられる。この中から最大個数の整数を選んで、それを小さい順に並べたときに等差数列となるようにせよ。 制約 考えたこと すごく DP っぽい雰囲気の問題。イメージとしては dp[ i ] := i 番目の要素が最後…

TopCoder SRM 452 DIV1 Medium - IOIString (本番 19 人)

すごく面白かった! 問題へのリンク editorial スコア: 191.85 / 500.00 問題概要 "I" と "O" のみからなる文字列 が IOI 文字列であるとは、ある正の整数 が存在して = "I" = "O" = "I" が成立することと定義する (1-indexed)。 いま、"I", "O", "?" のみか…