2024-07-27から1日間の記事一覧
こういう char 型の扱い方に関する問題は、より難しい問題では当たり前のように登場するので、今のうちに慣れておきたいですね。 問題へのリンク 問題概要 英小文字 a, b, …, z の ASCII 文字コードはこの順に 97, 98, …, 122 である。 97 以上 122 以下の整…
for 文の練習! 問題へのリンク 問題概要 個の整数 が与えられる。 の値を求めよ。 解法 まず、答えを表す変数 res を用意しましょう (初期値は 0 とします)。 for 文を用いて、順に A[i] を res に足し込んであげます。 コード #include <bits/stdc++.h> using namespace s</bits/stdc++.h>…
for 文で求めてもいいし、1 << N というようにビットシフト演算子を用いても解ける! 問題へのリンク 問題概要 0 以上の整数 が与えられる。 の値を求めよ。 制約 解法 (1):for 文 は「 を 回かけたもの」です。 回かける処理は for 文で実装できます。 注…
整数として扱っても解けるけど、文字列として処理するのが楽だと思う! 問題へのリンク 問題概要 100 以上の 3 桁の整数 が与えられるので、 の下二桁を出力せよ。 解法 3 桁の整数値を文字列 N として入力を受け取ろう。たとえば、459 という整数は、"459" …
二次元配列の練習問題! 問題へのリンク 問題概要 整数 と、2 行 2 列からなる行列 が与えられるので、 を出力せよ。 解法 2 行 2 列の行列は、次のような 2 次元の配列で実装できる。 int A[2][2]; そうすると、 行目 列目の要素は、A[R][C] と表せる。 コ…
の制約が小さいので、「区間」を思い切って全部探索しよう! 問題へのリンク 問題概要 長さ の数列 が与えられる。 を満たすような についての、 の値の最大値を求めよ。 制約 解法 この手の問題で悩んでしまうのはもったいないと言えます! まずは、コンピ…
for 文で隣接する要素を見ながら処理していく系の問題 問題へのリンク 問題概要 長さ の文字列 が与えられる。 を左から見ていき、文字列 "joi" が含まれるならば、これを "JOI" に変換していく処理を繰り返す。操作後の文字列を出力せよ。 解法 次のように…
いろんな解法がある! 問題へのリンク 問題概要 以上 以下の整数のうち、 との差の絶対値が最も小さいものを求めよ。 制約 解法 (1):for 文 一番確実な方法は、for 文を用いて、 をすべて調べることだと思われます。 が最小となるような を求めればよいでし…
集計処理を練習しよう! 問題へのリンク 問題概要 以上 以下の整数からなる、長さ の数列 が与えられる。 長さ の新たな数列 を次のように定義する。 各 に対して、 を、 を満たす の個数 の最大値を求めよ。 制約 解法 問題の意味を解釈するのが難しいかも…
reverse する系の問題 問題へのリンク 問題概要 長さ の文字列 について、 文字目から 文字目までを反転して得られる文字列を出力せよ。 制約 解法 C++ でプログラムを書くときは、通常文字列は 0 始まりですので、 からあらかじめ 1 引いておきます。 その…
マージソートのマージの部分を実装する問題ですね。 添字を順に進めていくような処理を実装します! この実装は、のちにしゃくとり法を学ぶ際の参考にもなります。 問題へのリンク 問題概要 制約 解法 問題文が複雑で、何をすればいいのかを理解するのが大変…