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

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

全探索:線形探索法

AtCoder ABC 276 A - Rightmost (7Q, 灰色, 100 点)

for 文の練習! 問題へのリンク 問題概要 英小文字からなる文字列 が与えられる。 に含まれる文字 'a' のうち、最も右側にあるものについて、その添字を答えよ。ただし、'a' が含まれない場合は -1 を出力せよ。 考えたこと 「最も右側」という条件がなけれ…

AtCoder ABC 291 A - camel Case (8Q, 灰色, 100 点)

線形探索法の応用! 問題へのリンク 問題概要 英文字からなる文字列 が与えられる。 この文字列 には、1 個だけ英大文字があり、残りはすべて英小文字である。 この英大文字が先頭から何番目の文字であるかを求めよ。 考えたこと for 文を用いて、各 に対し…

AtCoder ABC 339 A - TLD (7Q, 灰色, 100 点)

for 文のいい練習問題! 問題へのリンク 問題概要 英小文字と文字 . のみからなる文字列 が与えられる。 を文字 . で分割したときの末尾の文字列を出力してください。 制約 には文字 . が 1 つ以上含まれる 考えたこと まずは、 に含まれる文字 . のうち、最…

AtCoder ABC 338 A - Capitalized? (7Q, 灰色, 100 点)

基礎的な線形探索の問題! 問題へのリンク 問題概要 アルファベット文字からなる文字列 が与えられる。次の条件を満たすかどうかを判定せよ。 の先頭の文字は大文字である の先頭以外の文字はすべて小文字である 考えたこと まず、先頭の文字が小文字である…

AtCoder ABC 295 A - Probably English (7Q, 灰色, 100 点)

個の文字列の中に、条件を満たすものがあるかどうかを調べる問題! 問題へのリンク 問題概要 個の文字列 の中に、and, not, that, the, you であるものが存在するかどうかを判定せよ。 考えたこと C++ では、vector<string> 型で入力を受け取るとよい(変数名を W な</string>…

AtCoder ABC 277 A - ^{-1} (8Q, 灰色, 100 点)

線形探索法の基本問題! 問題へのリンク 問題概要 を並び替えてできる順列 が与えられる。 整数 が与えられるので、 を満たす を求めよ。 考えたこと まず順列 は、サイズ の vector<int> 型の変数 P として受け取ろう(C++)。このとき、 はそれぞれ P[0], P[1],</int>…

AtCoder ABC 345 A - Leftrightarrow (7Q, 灰色, 100 点)

教育的な for 文の問題! 問題へのリンク 問題概要 <, =, > のみからなる文字列 が与えられる。 先頭の文字が < 末尾の文字が > それ以外の文字が = という条件を満たすかどうかを判定せよ。 考えたこと 先頭が「<」であることや、末尾が「>」であることは容…

JOI 一次予選 2022 (第 1 回) D - 箱と鍵 (6Q, 難易度 3)

一見難しく見えるけど、実は単純な問題! 問題へのリンク 問題概要 整数 の書かれた 個の宝箱と、整数 の書かれた 個の鍵がある。 宝箱 は整数 が書かれた鍵を使うことで解錠できる。同じ鍵を使って複数の宝箱を解錠してもよい。 解錠できる宝箱の個数の最大…

JOI 一次予選 2022 (第 1 回) C - 複雑な文字列 (7Q, 難易度 2)

JOI は教育的な問題が多いね。 問題へのリンク 問題概要 文字 A, B, C, D, E のいずれかからなる文字列 が与えられる。 に 3 種類以上の文字列が登場するならば Yes、そうでないならば No を出力せよ。 解法 次のような 5 個の変数を用意しましょう! (変数…

AtCoder ABC 112 B - Time Limit Exceeded (7Q, 灰色, 100 点)

「線形探索」と「最小値を求める」の組み合わせ技! 問題へのリンク 問題概要 個のペア値 が与えられる。 を満たすような についての、 の最小値を求めよ。そのような が存在しない場合は "TLE" と出力せよ。 解法 for 文を用いて、各 i について t[i] <= T …

AtCoder ABC 353 A - Buildings (7Q, 灰色, 100 点)

break を忘れずに! 問題へのリンク 問題概要 数列 が与えられる。 を満たす最小の を求めよ (存在しなければ -1 を出力せよ)。 解法 for 文を用いて、調べていこう。 条件を満たすような最小の を求めたいので、for 文での探索中に見つかったら、その瞬間に…

鉄則本 B02 - Divisor Check (7Q, ★1)

整数に対する for 文を用いての全探索です! 問題へのリンク 問題概要 以上 以下の整数のうち、100 の約数であるものは存在するか、判定せよ。 解法 github.com コード #include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; bool res = fa</bits/stdc++.h>…

鉄則本 A02 - Linear Search (8Q, ★1)

線形探索法の基本問題! 鉄則本の問題なので、解法はメモ程度に。 問題へのリンク 問題概要 個の整数 の中に、整数 が含まれるかどうかを判定せよ。 メモ for を使った全探索です! コード #include <bits/stdc++.h> using namespace std; int main() { // 入力 int N, X; c</bits/stdc++.h>…

JOI 一次予選 2024 (第 1 回) D - 現れている数字 (6Q, 難易度 2)

とても教育的な問題ですね。 問題へのリンク editorials 問題概要 0 以上 9 以下の整数からなる、 個の整数 が与えられる。 数列 の中に一度以上登場する整数を小さい順に出力せよ。 解法 (1):値 0, 1, ..., 9 について個別に全探索 1 つめの解法は まず、…

AtCoder ABC 220 A - Find Multiple (7Q, 灰色, 100 点)

for 文を用いるのが楽だと思う。 問題へのリンク 問題概要 以上 以下の の倍数が存在するならば 1 つ求め、存在しない場合は -1 を出力せよ。 制約 考えたこと for 文を用いるのが最も楽だと思う。 について、 で割り切れるかどうかを判定していき、 割り切…

AtCoder ABC 165 A - We Love Golf (7Q, 灰色, 100 点)

色んな解法がある! この手の数値的なものに対して「全探索」という解法を選択肢に持てるようにしていこう。 問題へのリンク 問題概要 3 個の正の整数 が与えられる。次の条件を満たす整数が存在するかどうかを判定せよ。 の倍数である 以上 以下である 制約…

JOIG 2024 A - 三連続 (7Q, 難易度 2)

for 文の練習問題! 問題へのリンク 問題概要 o と x からなる長さ の文字列 が与えられる。 の中に o が 3 つ連続している箇所があれば "Yes" を出力し、そうでなければ "No" を出力せよ。 制約 考えたこと for 文を用いて判定しよう。具体的には、各 i に…

AtCoder ABC 330 A - Counting Passes (8Q, 灰色, 100 点)

最近、易しめのいい感じの A 問題多いね! 問題へのリンク 問題概要 個の整数 のうち、 以上であるものの個数を求めよ。 解法 配列を使って入力を受け取って、for 文を使って配列の要素を 1 個 1 個見ていけばいい。 #include <bits/stdc++.h> using namespace std; int mai</bits/stdc++.h>…

AtCoder ABC 327 A - ab (7Q, 灰色, 100 点)

文字列の練習! 問題へのリンク 問題概要 英小文字からなる長さ の文字列 が与えられる。 この文字列 中に、文字 'a' と 'b' が隣接する箇所があるかどうかを判定せよ。 考えたこと for 文を用いて判定していく。添字 i を回していき、 S[i] == 'a' and S[i+…

JOI 予選 2007 B - 未提出者は誰だ (AOJ 0511) (6Q, 難易度 2)

for 文を二重にしたり、フラグを管理したりする練習! 問題へのリンク editorial 問題概要 個の整数値が与えられる。これらの整数値は 以上 以下の整数から 2 個を除外したものとなっている。 その除外された 2 個の整数値を小さい順に答えよ。 考えたこと …

AtCoder ABC 222 B - Failing Grade (8Q, 灰色, 200 点)

for 文の練習問題 問題へのリンク 問題概要 人のテストの得点 のうち、 点未満のものが何個あるかを答えよ。 解法 for 文を用いて、 であるような の個数を数えればよい。 コード #include <bits/stdc++.h> using namespace std; int main() { // 入力 int N, P; cin >> N ></bits/stdc++.h>…

AtCoder ABC 310 A - Order Something Else (7Q, 灰色, 100 点)

問題の入力変数が多いので、読み解くのが大変かもしれないですね。 問題へのリンク 問題概要 AtCoder ドリンクは定価である 円を払えば飲むことができます。 また、割引券を持っており、それを使うと AtCoder ドリンクを定価より安い価格である 円で飲むこと…

AtCoder ABC 043 C - いっしょ (ARC 059 C) (5Q, 茶色, 200 点)

本当にただ全探索するだけ!!! でも意外とこういうのが思いつかれにくいかもしれない。 問題へのリンク 問題概要 (意訳) 長さ の整数列 が与えられる。今、整数 を 1 つ選ぶ。そして整数列をすべて に書き換える。それに要するコストは で与えられる。適切…