2次元差分配列を用いたカーペット問題の解法

問題の説明 n x n のグリッド上に m 枚のカーペットが置かれています。これらのカーペットの情報が与えられたとき、各マスが何枚のカーペットで覆われているかを求めてください。 入力形式 第一行に、2つの正の整数 n, m が与えられます。 続く m 行に、それぞれ 2 つの座標 (x1, y1) と (x2, y2) が与えられます。これは、左上のマスが (x1, y1)、右下のマスが ( ...

5月14日 09:46 投稿

AtCoder Beginner Contest 318 問題分析とC++解法

A - Full Moon (満月) この問題は、N日目までの期間において、最初の満月がM日目に見え、その後P日ごとに満月が見える場合に、合計何回満月が見えるかを数えるものです。つまり、M, M+P, M+2P, ...という等差数列の項がN以下になるものがいくつあるかを求めます。 まず、N日目がM日目よりも前であれば、満月は一度も見えません。この場合、回数は0です。 N日目がM日目以降 ...

5月13日 23:06 投稿

部分文字列抽出と塗りつぶしアルゴリズムの実装

文字列包含範囲の抽出 与えられた文字列から、特定の部分文字列を全て含む最小の連続部分を抽出するアルゴリズム。左から右へ探索して部分文字列の最後の文字位置を特定し、次に右から左へ探索して部分文字列の最初の文字位置を特定することで最小範囲を決定する。 #include <iostream> #include <string> using namespace std; void extractMinimalSubstri ...

5月13日 08:50 投稿

AtCoderビギナーコンテスト312 解説とコード例

問題A: 和音判定 与えられた文字列が有効な和音かどうかを判定する問題です。 #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<string> validChords {"ACE", "BDF", "CEG", "DFA", "EGB", "FAC", "GBD"}; string input; cin >> input; if (find(validChords.begin ...

5月11日 12:11 投稿