SMU Autumn 2023 Div.1 コンテスト問題のアルゴリズム解説と実装

問題A:数値の置換と減少による合計値制御 配列の各要素に対して「任意の要素を1減算する」または「任意の要素を他の要素の値へコピーする」操作を繰り返し、配列総和を閾値K以下にするための最小操作回数を求める問題です。 効率的な解法は貪欲法と累積和の組み合わせです。まず配列を昇順ソートします。大きな値を直接減算するよりも、最小値へコピーした方が一度に合計 ...

6月25日 22:31 投稿

QMLとC++によるデータ分離アーキテクチャの実践 - QAbstractListModelを用いた動的リスト実装

データ分離アーキテクチャの概要 Qt5以降、QMLはデスクトップアプリケーション開発における第一級のUI構築技術として定着しました。本稿では、QMLが担当するプレゼンテーション層とC++が担当するデータ層を明確に分離する実装パターンを解説します。このアプローチにより、QMLは高速なレンダリングに専念し、データ管理やビジネスロジックはC++側で堅牢に実装できます。両 ...

6月20日 19:25 投稿

トライ木による文字列検索と最大 XOR ペアの解法

トライ木の基本構造と実装 トライ木(Trie)は、文字列や数値の検索・格納に特化した木構造データ構造です。各ノードが複数の子ノードを持ち、文字やビットによってパスを分岐させることで効率的な検索を実現します。 まずは、英文字からなる文字列を扱う基本的なトライ木の実装を見てみましょう。 #include <bits/stdc++.h> using namespace std; const int MAX ...

5月15日 04:36 投稿