2つのキューを使用したスタックの実装

2つのキューを使用したスタックの実装 問題分析 この問題は、配列やリンクリストでスタックを実装するのではなく、キューを使用してスタックを実装することを求めています。キューとスタックの関係は逆で、スタックは後入れ先出し(LIFO)の特性を持つのに対し、キューは先入れ先出し(FIFO)の特性を持っています。したがって、この問題はキューの性質をスタックの性質 ...

7月24日 20:46 投稿

睿抗省赛模拟题解

2024年問題 RC-u1 熱天気判定 1からnまでのループを行い、気温が35度以上かどうかをチェックし、指定されたルールに従ってカウントします。 void resolve() { cin >> n >> k; int result = 0, count = 0; for (int i = 1; i > temp; if (temp >= 35) { if (k == 4) count++; else result++; } k++; i ...

7月24日 18:58 投稿

平衡二分探索木 Treap と Splay の実装と応用

平衡二分探索木(Balanced BST)は、動的集合操作を効率よく扱うための重要なデータ構造である。特に Treap および Splay 木は、それぞれ異なる戦略で平衡性を保ちながら、挿入・削除・検索などの基本操作を平均 $O(\log n)$ 時間で実現する。 単回転 Treap Treap(Tree + Heap)は、各ノードにランダムな優先度(priority)を持たせ、二分探索木の性質とヒープの性質を同 ...

7月24日 03:15 投稿

C言語によるヒープと二分木の実装

ヒープデータ構造の実装 ヘッダファイル定義 #pragma once #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <stdbool.h> typedef int HeapValue; typedef struct MinHeap { HeapValue* elements; int count; int capacity; } MinHeap; void HeapInitialize(MinHeap* heap); void HeapDestroy(MinHeap* heap) ...

7月23日 19:21 投稿

循環リンクリストの検出と入環ノード特定

循環リンクリストの検出 問題概要 リンクリストの先頭ノードheadが与えられたとき、循環構造の有無を判定する。循環構造とは、ノードのnextポインタを追跡することで再訪問可能なノードが存在する状態を指す。循環が存在しない場合はfalseを返す。 入力例 例1: head = [3,2,0,-4], pos=1 → true 例2: head = [1,2], pos=0 → true 例3: head = [1], pos=-1 → false 解法: ...

7月22日 22:34 投稿

2024年蓝桥杯コンテスト対策:重要知識と試験テクニック

過去問 2023年第十四回蓝桥杯C++B組の振り返り 2022年 2021年 蓝桥杯公式サイトの問題演習 ⭐試験テクニック⭐ まず暴力解法(時間計算量の高い解法)を考えます → 部分点を獲得 データ範囲から正しい時間計算量を判断し、その計算量に基づいてアルゴリズムの範囲を特定します。 暴力解法:問題文のプロセスをシミュレーションします。 時間計算量:https://www.acwin ...

7月22日 18:52 投稿

HashMapソースコード解析ノート

内部構造:配列+連結リスト+赤黒木 主要なポイント ハッシュ関数の攪乱処理 static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); } このメソッドは、keyのハッシュ値に対して攪乱処理を行う。上位16ビットはそのまま保持し、下位16ビットと上位16ビットの排他的論理和(XOR)を計算し、その ...

7月22日 03:52 投稿

R言語におけるリストの基本概念

はじめに リストはインデックス付きのオブジェクト群であり、異なるデータ型を含むことができる。その強みと有用性は汎用性にあります。Rでは、複雑な関数の出力を収集・保存するためによく使われます。データフレームはリストの特殊な形です。 リストはlist(...)関数を使って作成され、カンマで区切られた引数を受け取ります。サブリストを選択するには単一角括弧を使用し ...

7月22日 03:43 投稿

線形リストの初期化と破棄処理の実装

線形リストの主要機能 1. データ格納とアクセス 線形リストはデータを順序通りに格納し、効率的な組織化と管理を可能にします。インデックスを使用することでデータ要素への高速アクセスが実現されます。 2. データ挿入と削除 任意の位置へのデータ要素の挿入・削除操作をサポートします。これによりデータの更新や修正が容易になります。 3. データ検索 インデックス ...

7月21日 02:07 投稿

SMU Summer 2024 Contest Round 5

SMU Summer 2024 Contest Round 5 ロボット高橋君 思考プロセス 重み (W_i) でソートし、前後の 1 と 0 の個数を計算します。答えはおおよそ (\max(ans,pre_i+suf_{i+1})) の形式になります。 ソート後、(W_i = W_{i+1}) の場合、i と i+1 の間で分割できないため特別な処理が必要です。 コード #include <iostream> #include <vector> #include <algorithm ...

7月20日 17:48 投稿