for文
近年の B 問題では最も簡単かもしれない。 問題へのリンク 問題概要 文字 .、@ からなる長さ の文字列 が与えられる。後ろから順に 個の @ を . に変えたものを出力せよ。 考えたこと for 文を用いて、添字を という降順に回していき、 S[i] == '@' のとき …
ちゃんと整理するのは大変だ。落ち着いて整理しよう。 問題へのリンク 問題概要 長さ の文字列 が与えられる。 が "11/22 文字列" であるかどうかを判定せよ。 11/22 文字列であるとは、文字 1, /, 2 がこの順に並んでいて、1 と 2 の個数が等しいものをいう…
問題文がややこしい書き方をしているけど、「要するにこういうこと!」という言い換えができるといい。 問題へのリンク 問題概要 文字 ., @ からなる長さ の文字列 が与えられる。@ を左から順に 個だけ . に書き換える。 書き換えたあとの文字列に含まれる…
for 文の練習問題 問題へのリンク 問題概要 長さの等しい 2 つの文字列 が与えられる。 に含まれる各文字 '@' について、'a', 't', 'c', 'o', 'd', 'e', 'r' のいずれかに置き変えることで、 が一致するようにできるかを判定せよ。 制約 [tex 1 \le |S| = |T…
初歩的な構文解析問題 問題へのリンク 問題概要 "|---|-|----|-|-----|" のような、文字 '-' を文字 '|' で separate された文字列 が与えられる。 各 '-' 区間の '-' の個数を順に出力せよ。 制約 考えたこと ここでは for 文で解いてみよう。次の変数を管…
ソートが使えるなら、それが楽だと思う 問題へのリンク 問題概要 6 桁の正の整数 が与えられる。 が次の条件を満たすかどうかを判定せよ。 1 をちょうど 1 個含む 2 をちょうど 2 個含む 3 をちょうど 3 個含む 解法 (1):1, 2, 3 の個数を数える方法 for 文…
この問題は、for 文でも解けるし、map でも解ける。ここでは map で解いてみよう。 問題へのリンク 問題概要 個の文字列 と、 個の文字列 が与えられる。 これに対して文字列を考えて、その文字列に対するスコアは ( に含まれている分の個数) - ( に含まれて…
if 文を並べてもいいし、map を使ってもよさそう。 問題へのリンク 問題概要 文字列 が与えられる。 の各文字に対して、 O → 0 D → 0 I → 1 Z → 2 S → 5 B → 8 それ以外 → そのまま という変換をして得られる文字列を答えよ。 コード (1):if 文 if 文を使っ…
サンプルを見れば上限が分かる系の問題! 問題へのリンク 問題概要 各桁の値が 1 である数をレプユニット数という。 レプユニット数 3 個の和として考えられる数のうち、 番目に小さい数を求めよ。 制約 考えたこと まず、問題文の条件を満たす数をトリレプ…
「前回の値」を保持しながらシミュレーションする系 問題へのリンク 問題概要 ボタンを押すと、1 個の飴がもらえるが、前回飴をもらってから 秒間はもらえない。 高橋君は 回ボタンを押した。それぞれ 秒後に押した(これらは単調増加)。 何回飴をもらえた…
文字列を for 文で調べる系の問題 問題へのリンク 問題概要 文字 #, . からなる長さ の文字列 が与えられる。次の条件を満たす整数 の個数を求めよ。 = # = . = # 考えたこと 次のように考えると実装しやすい。 各 に対して、文字列 の 文字目から 3 文字文…
2 つの文字列の長さが等しかったり、異なったりするのが少しイヤだが、難しくはない。 問題へのリンク 問題概要 文字列 が与えられる。 または である。 の各文字を先頭から順に交互にとって得られる文字列を出力せよ。 考えたこと まずは、 に対して、 と …
文字列 のサイズが異なる場合の処理などがちょっとだけややこしい。 問題へのリンク 問題概要 文字列 が与えられる。次のいずれかの条件を満たす最小の を求めよ。ただし、 である場合は 0 と答えよ。 かつ であって、 である ] かつ である ] かつ である …
文字列、配列、for 文の練習 問題へのリンク 問題概要 文字列 が与えられる。 文字列 の長さが であるような の個数を求めよ。 考えたこと for 文を使って について、 if (S[i].size() == i) というように判定していけばよい。 コード #include <bits/stdc++.h> using names</bits/stdc++.h>…
for 文の練習! 問題へのリンク 問題概要 個の整数 のうち、最大値と最小値を除外した 個の整数の総和を求めよ。 制約 個の整数はすべて互いに相異なる 解法 まず 個の整数を「配列」として受け取りましょう (C++ では vector<int> 型など)。 その後、配列に対し</int>…
continue 文が書けるとやりやすいと思われる。 問題へのリンク 問題概要 英小文字と文字 '.' からなる文字列 が与えられる。 から文字 '.' を除外してできる文字列を出力せよ。 考えたこと for 文を用いて文字列 の文字を順に見ていこう。その際に、 番目の…
制約が なのがびっくり。素直に連続部分列をすべて調べると TLE してしまう。そのような問題は B 問題で登場するイメージがないので、現代なら などとしそうだ。 問題へのリンク 問題概要 文字列 の連続する部分文字列であって、先頭が 'A' で末尾が 'Z' で…
多重 for 文の練習! 問題へのリンク 問題概要 2 つの数列 、 が与えられる。数列 からそれぞれ 1 個ずつ選んでできる 個のペアについて 「その和」と「その最大値」の積 を求めて、それらの総和を求めよ。 制約 考えたこと 2 つの数列からそれぞれ要素をと…
for 文と if 文の練習! 問題へのリンク 問題概要 文字 J, O, I からなる長さ の文字列 が与えられる。 この文字列において、J を O に、O を I に、I を J に置換した文字列を答えよ。 解法 for 文を用いることで、 の各文字にアクセスすることができる。左…
綺麗な言葉で条件を言い換えよう! 問題へのリンク 問題概要 一列に白色碁石と黒色碁石が合計 個並んでいる。 左右のいずれかに白色碁石と黒色碁石を置いていく。このとき、オセロのルールに基づいて石の色がひっくり返る。 すべての色を同色にするのに必要…
for 文を回す処理を 回やる問題 問題へのリンク 問題概要 個の整数からなる数列 が与えられる。次の 回のクエリに答えよ。 【クエリ】 整数 が与えられる。 を に変更したときの、 の値を答えよ。(なお、クエリごとに変更は引き継がれない。) 考えたこと …
面白い探索問題 問題へのリンク 問題概要 座標平面上に 個の点がある。点 の座標は である。 各 に対して、点 の距離が最大であるような の値を求めよ(タイがある場合は が最小のもの)。 制約 考えたこと 各 に対して、別々の問題を解く。 に対して (X[i] …
second best を求める系の問題 問題へのリンク 問題概要 個の相異なる整数 が与えられる。 この数列のうち 2 番目に大きいものについて、それが の何番目の要素であるかを求めよ。 制約 解法 (1):max と second max を管理する 1 つ目の方法として、最大値…
「0 が連続何個続くのか」を求めるタイプの問題 問題へのリンク 問題概要 数字からなる長さ の文字列 が与えられる。 「1」「2」「3」「4」「5」「6」「7」「8」「9」「0」「00」と書かれた文字列スタンプを順に押して行って、 を作りたい。 スタンプを押す…
for 文の練習問題! 問題へのリンク 問題概要 HP が であるモンスターを倒したい。 種類の必殺技を順に使っていく。 種類目の必殺技はモンスターの HP を だけ減らすことができる。 モンスターの HP を 0 以下にすることができるかどうかを判定せよ。 考えた…
楽しい for 文の練習問題! 問題へのリンク 問題概要 ともに長さが である 2 つの文字列 が与えられる。 の 1 文字目、 の 1 文字目、 の 2 文字目、 の 2 文字目、... の順に文字を連結して得られる文字列を答えよ。 考えたこと 次のように考えれば良いだろ…
for 文の練習問題! 問題へのリンク 問題概要 個の整数 のうち、 以上であるものの個数を求めよ。 考えたこと for 文を用いて、 に対して、 以上であるかどうかを判定していこう。 以上:答えを表す変数を 1 増やす そうでない:何もしない というようにすれ…
この問題は、ハミング距離と呼ばれる超重要概念! 問題へのリンク 問題概要 2 つの長さが等しい文字列 が与えられる。次の操作を繰り返して を に変更するとき、操作回数の最小値を求めよ。 操作: の 1 文字を選んで別の文字に書き換える 制約 考えたこと …
for 文のいい練習問題! 問題へのリンク 問題概要 高橋君は 問のクイズに答える。最初 点であり、正解すると 1 点増加する。不正解だと 1 点減少するが、不正解前に 0 点である場合は減らない。 高橋君が各問題に正解したかどうかを表す文字列 が与えられる…
for 文の練習! 問題へのリンク 問題概要 英小文字からなる文字列 が与えられる。 に含まれる文字 'a' のうち、最も右側にあるものについて、その添字を答えよ。ただし、'a' が含まれない場合は -1 を出力せよ。 考えたこと 「最も右側」という条件がなけれ…