プログラミングコンテスト問題集(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 投稿