アルゴリズム競技プログラミング問題集

基本的なアルゴリズム問題集 1. 立方体の体積計算 辺の長さa, b, cが与えられた時、立方体の体積を計算します。 #include <iostream> using namespace std; int main() { int length, width, height; cin >> length >> width >> height; cout > exponent; cout countB; for(int i=0; i<countA+countB; i++) { cout > n; whil ...

5月20日 03:45 投稿

C++のキーワードと演算子の詳細

ポインタと参照 基本定義 ポインタ: オブジェクトのアドレスを格納する変数。自身のメモリアドレスを持つ。 参照: 変数の別名。宣言時に初期化必須。 相違点 特性ポインタ参照 多重間接参照サポート (例: int**)単一参照のみ null許容NULL/nullptr可不可 初期化宣言と初期化を分離可宣言時必須 再代入対象変更可不可 sizeof演算ポインタサイズを返す(4/8byte)参照先サ ...

5月20日 03:36 投稿

C++ クラスの基礎:特殊メンバ関数とオブジェクトのライフサイクル

C++のクラスを設計する際、特定のメンバ関数は、ユーザーが明示的に定義しなくてもコンパイラによって自動生成されることがあります。これらをデフォルトメンバ関数と呼びます。C++のクラスには、以下の6つのデフォルトメンバ関数が存在します。C++11以降では、ムーブコンストラクタとムーブ代入演算子が追加され、合計8つとなりますが、本記事では特に重要な初期の6つに焦 ...

5月20日 01:44 投稿

アルゴリズム競プロ実装解説:括弧最適一致・グラフ着色・Mo法応用・カルテジアン木

括弧列の最適一致(ciphertext) 与えられた文字列には '('、')'、およびワイルドカード '?' が含まれます。目標は '?' を適切な括弧に置き換え、できる限り多くの一致ペアを形成し、一致不能な括弧の最小個数を出力することです。 本問題は貪欲法を段階的に適用することで解けます。まず、既存の '(' と ')' による明確な一致をスタックを用いて処理し、一致した位置はマ ...

5月20日 01:26 投稿

C++による基本ソートアルゴリズムの実装ガイド

バブルソート 時間計算量はO(n²)で、追加のメモリ領域を必要としないインプレースソートである。 アルゴリズムの仕組み 隣接する2つの要素を順次比較し、大小関係が逆であれば交換を行う。先頭から末尾まで走査すると、最大値が配列の最後尾に移動する。次に、末尾を除いた範囲で同様の操作を繰り返すことで、未整列部分の最大値が順に後方へ沈んでいく。 実装例 #include ...

5月20日 00:45 投稿

C++を用いたコンテスト参加者情報管理システムの実装

contestant.hpp #pragma once #include <iomanip> #include <iostream> #include <string> struct Participant { long studentId; std::string fullName; std::string department; int problemCount; int totalTime; }; std::ostream& operator<<(std::ostream& out, const Participant& p) { out << s ...

5月19日 19:33 投稿

ABC347 プログラミングコンテスト問題解説

A link 很简单 配列を順にアクセスし、\(k\)で割った余りが\(0\)かどうか判定する。余りが\(0\)の場合、\(a_i/k\)を出力する。 クリックしてコードを表示``` #include<bits/stdc++.h> using namespace std; int n, k; int data[105]; int main() { cin >> n >> k; for(int i = 1; i <= n; ++i) { cin >> data[i]; if(data[i] % k == 0) ...

5月19日 18:09 投稿

GUIアプリケーション開発とオブジェクト指向アプローチ

GUIユーザーインターフェースの構成要素 GUIアプリケーションは固定されたウィンドウ要素で構成されています。オペレーティングシステムはユーザーインターフェース要素を作成するための関数群を提供しますが、これらの関数は直接的にインターフェース要素に対応するものではありません。異なる機能を持つ関数を順次呼び出すことで、最終的にインターフェース要素が構築さ ...

5月19日 16:48 投稿

LeetCode 2960: テスト済みデバイスのカウント問題

長さn、0から始まるインデックスを持つ整数配列batteryPercentagesが与えられ、これはn個のデバイスのバッテリー百分比を表します。 あなたのタスクは、各デバイスiを順番にテストし、以下のテスト操作を実行することです: もしbatteryPercentages[i]が0より大きい場合: テスト済みデバイスのカウントを増やす。 インデックスが[i + 1, n - 1]のすべてのデバイスのバッテ ...

5月19日 14:13 投稿

スタックとキューの実装:データ構造の変換問題

基礎知識 スタックとキューの内部実装メカニズム キューは先入れ先出し(FIFO)、スタックは後入れ先出し(LIFO)です。 スタックに関する4つの基本質問 C++におけるstackはコンテナですか? スタックとキューはSTL(C++標準ライブラリ)の2つのデータ構造です。STLでは、スタックはコンテナとして分類されるのではなく、container adapter(コンテナアダプタ) ...

5月19日 11:09 投稿