ABC352コンテスト問題解説
問題A: 停車可能区間の判定
ある区間内に指定された位置が含まれるかを判定する問題です。xとyの大小関係によって、区間の方向が変わる点に注意が必要です。
コード例
#include <iostream>
#include <algorithm>
int main() {
int n, x, y, z;
std::cin >> n >> x >> y >> z;
bool result = false;
if (x ...
7月7日 21:07 投稿
AtCoder Beginner Contest 357 における A から D 問題の解法解説
問題A: Sanitizer
N人の人が順番に手を消毒します。各人が必要とする消毒液の量 $H_i$ が与えられ、合計 $M$ 単位の消毒液があるとき、何人目までが完全に手を消毒できるかを求める問題です。
実装としては、配列に格納された各 $H_i$ を順に累積し、その合計が $M$ を超えた時点のインデックスを確認します。累積和が $M$ を超えない場合は、全員が消毒可能です。
#inclu ...
7月1日 16:24 投稿
AtCoder Beginner Contest 333 スolved 解説
概要
AtCoder Beginner Contest 333 の Implement 問題を解説します。難易度は A-D が初心者〜中級者向け、E はGreedy + スタック操作の基礎知识点が必要です。
A - Three Threes
入力された整数 \(n\) を \(n\) 回連続して出力する問題です。
制約が \(1 \le n \le 9\) と非常に小さいため、ループで単に出力すればOKです。
#include <iostream>
using namespac ...
6月29日 20:56 投稿
AtCoder Beginner Contest 170の問題解説と実装
問題Dの解法
整数配列Aが与えられたとき、他の全ての要素で割り切れない要素の数を求める問題です。配列サイズは最大2×10^5です。
解法としては、各数値の出現頻度を記録し、各要素の約数を調べて他の要素で割り切れるか判定します。重複要素がある場合に注意が必要です。
#include<bits/stdc++.h>
using namespace std;
const int MAX = 1e6+5;
int main() {
...
6月28日 02:43 投稿
AtCoder Beginner Contest 378
A - ペアリング
問題文
4つの数が与えられる。各ステップで同じ値の2つの数字を選んで削除する。この操作を最大何回行えるかを求める。
解法
シミュレーションを行う。
コード
コードを表示#include <bits/stdc++.h>
using namespace std;
#define int long long
typedef pair<int, int> pii;
const int mxn = 1e6 + 5;
void solve()
{
int a, b, c, d;
...
6月27日 01:13 投稿
AtCoderコンテスト328の問題解説
A: 閾値以下の合計
数値リストから指定された閾値以下の要素の合計を算出します。
#include <iostream>
#include <vector>
using namespace std;
int main() {
int num, threshold;
cin >> num >> threshold;
vector<int> values(num);
int total = 0;
for (int &val : values) {
cin >> val;
if (val days[i];
int base = i ...
6月25日 22:30 投稿
ABC379 問題解説:C・D・E・F
C問題:石の山の配置
石を後方にしか移動できないという制約下で、目標の配置が可能かどうかを判定し、最小移動回数を求める問題です。
条件を満たす配置は一意に定まるため、以下の3点をチェックします。
石の総数がnと一致しない場合は不可能。
最初の山の位置が1でなければ不可能。
途中の位置で、それまでの石の合計数が必要数に満たない場合は不可能。
解 ...
6月22日 21:01 投稿
AtCoder Beginner Contest 397 問題解説と実装アプローチ
第 1 問:温度計 (Thermometer)
体温の読み取り値に基づき、状態を示す整数を出力する単純なシミュレーション問題です。入力された小数点数がどの範囲に属するかを判断します。
解法の方針
温度値を float または double 型で受け取り、以下の条件ロジックで分岐処理を行います。
38.0 以上の場合:レベル 1
37.5 未満の場合:レベル 3
それ以外:レベル 2
実装コード
# ...
6月22日 19:14 投稿
AtCoder Beginner Contest 449 解説
今回のAtCoder Beginner Contestは、最近の中でも特に難易度が高いセットでした。以下、D・E・Fの3問について解法を説明します。
D - Make Target 2
\( \max(|x|,|y|) \) の扱いを簡単にするため、\( |x| > |y| \) の場合と \( |x| \le |y| \) の場合に分けて計算し、最後に合計します。ここでは \( |x| > |y| \) の場合を示します(もう一方も同様です)。
\( |x| > | ...
6月9日 16:13 投稿
AtCoder ABC389のアルゴリズム実装と解説
問題C: キューによる区間管理のシミュレーション
この問題では、列の先頭への追加や末尾からの削除、特定位置の要素へのアクセスを効率的に行う必要があります。全ての要素を個別に保持するとメモリや計算量が膨大になるため、連続する要素を「区間」として管理する手法をとります。
各区間について「先頭からの相対距離(開始位置)」と「区間の長さ」を構造体で定義し ...
6月6日 19:20 投稿