牛客週間コンテスト 第5回

牛客週間コンテスト 第5回 A-游游の文字変換 #include <iostream> #include <string> using namespace std; int main() { string input; cin >> input; for (size_t i = 0; i < input.length(); ++i) { char current = input[i]; if (current >= 'A' && current < 'Z') { input[i] = cu ...

7月1日 00:04 投稿

Pythonにおける木構造の実装と応用

Pythonにおける木構造の実装と応用 木構造の基本概念 木構造は階層的な関係を模倣するデータ構造で、各要素はノードと呼ばれます。木の各ノードはゼロ個以上の子ノードを持つことができますが、各ノードは親ノードを一つしか持たない、という特徴があります。ルートノードだけは親ノードを持たない例外です。木構造の重要な特性は、循環がないことです。つまり、あるノー ...

6月24日 16:08 投稿

プログラミング問題解法集

可能な限り簡潔にします。 CF679E 直接代入と修正のタイミングが正しいことがわかりますので、書き方について説明します。区間を良い数に変える操作を「加算」と呼びます。 既に区間代入が行われた区間にUpというマークを付けると、その区間とその子区間は1つの点と見なせます。そのため、修正の複雑さは単点修正と同じになります。 したがって、加算操作は次のように記述 ...

6月21日 23:23 投稿

C++における二分探索木の実装と操作

二分探索木とは 二分探索木(Binary Search Tree: BST)は、以下の条件を満たす二分木構造です: 左部分木に含まれるノードの値は、常に親ノードの値より小さい 右部分木に含まれるノードの値は、常に親ノードの値より大きい 左右の部分木もまた二分探索木を満たす 基本操作 探索(Search) 探索操作は以下のように行われます: ルートノードから比較を開始します 探索 ...

5月30日 20:39 投稿

配列操作と木構造上の色付け問題の解法

配列内要素の隣接関係判定 与えられた配列において、特定の2つの要素xとyが隣接しているかどうかを判定する問題です。 #include<iostream> #include<vector> using namespace std; bool checkAdjacent(vector<int>& arr, int target1, int target2) { int n = arr.size(); for(int i = 0; i < n; i++) { if(arr[i] == target1) { ...

5月26日 06:39 投稿

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 投稿