プログラミングコンテスト問題集(7問)

L1-1 人と神 指定された文字列を直接出力するPHP実装 <?php echo "To iterate is human, to recurse divine."; ?> L1-2 C言語速習 基本数値計算処理の実装例 #include <iostream> using namespace std; void calculate() { int total, studied, hours; cin >> total >> studied >> hours; cout input; int century = input / 100; ...

5月25日 23:04 投稿

二分木の深さ優先探索:非再帰アルゴリズムとJava実装

DFS分析 深さ優先探索(DFS)は子ノードを先に訪問し、その後親ノードを訪問する手法です。訪問順序により以下の3種類に分類されます: 前順序(pre-order):根→左→右 中順序(in-order):左→根→右 後順序(post-order):左→右→根 DFS非再帰実装 前順序と後順序 前順序と後順序の実装は類似したロジックで実現できます。前順序訪問は根ノードから開始し、左部分木、右 ...

5月24日 22:35 投稿

LeetCode 二分木問題集(その2)

101 対称二分木 二分木の根ノード root が与えられたとき、木が対称構造か判定する。 class Solution { public boolean isSymmetric(TreeNode root) { if (root == null) return true; return checkNodes(root.left, root.right); } private boolean checkNodes(TreeNode leftNode, TreeNode rightNode) { if (leftNode == null ...

5月18日 15:41 投稿

アルゴリズム入門:検索、グラフ探索、動的計画法、ハッシュ

検索アルゴリズム データ集合から特定の要素を見つける操作です。代表的なものに線形探索と二分探索があります。 線形探索: 先頭から順番に各要素を比較し、目的の値が見つかるか、リストの終端に達するまで繰り返します。時間計算量はO(n)です。 二分探索: ソート済みの配列に対して使用されます。探索範囲の中間点の値と目的の値を比較し、探索範囲を半分ずつ狭めていき ...

5月17日 23:06 投稿

SMU Summer 2024 Contest Round 6 問題解説

Many Formulas 問題概要 ある整数が与えられます。この整数の任意の桁と桁の間に + 記号を0個以上挿入することで式を形成し、形成可能なすべての式の合計値を計算します。 解法 1 ≤ |S| ≤ 10 であるため、全探索が現実的です。n桁の整数では、n-1箇所の隙間に加号を挿入するかどうかを決定できます。バイナリビットマスク用于枚举所有可能的加号插入位置。 実装 #include & ...

5月16日 16:51 投稿