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