最長共通部分列の解法

最長共通部分列 2つの文字列 s1 と s2 が与えられたとき、これらの文字列の最長共通部分列の長さを返してください。共通部分列が存在しない場合は 0 を返します。 文字列の部分列とは、元の文字列から文字の相対的な順序を変更せずに一部の文字を削除(または削除しない)して形成される新しい文字列です。 例えば、"ace" は "abcde" の部分列です ...

8月3日 19:44 投稿

Pythonの基礎知識

Pythonの再学習を行う理由は、その単純さと高階な利用を目指すためです。以下の内容は、Pythonの基本的な知識をカバーしています。 コマンドラインで python -V を実行して、Pythonのバージョンを確認します。 LinuxやMacでは、Pythonの環境変数を設定する必要があります。 デフォルトでは、Python 3のソースコードファイルはUTF-8エンコーディングであり、すべての ...

8月3日 06:30 投稿

C言語におけるポインタの基礎

メモリアドレスとは C言語で重要な概念の一つに「アドレス」があります。メモリ(ここでは物理メモリではなく、仮想的な論理メモリ空間を指します)は、1バイトごとに一意な番号が割り当てられています。たとえば、定規の目盛りをイメージしてください。0から999までの目盛りが刻まれた定規で、35mmや256mmの位置を正確に指し示せます。メモリも同様に線形に配置されており ...

8月1日 16:35 投稿

LeetCodeの代表的なアルゴリズム問題とその解答

LeetCodeの代表的なアルゴリズム問題とそのC++による実装をまとめました。文字列、配列、連結リスト、動的計画法などのトピックを取り上げ、アルゴリズム面接準備や日頃の練習に役立ちます。 目次 文字列処理 配列問題 連結リスト操作 動的計画法 木の走査 1. 文字列処理 1.1 二進数の部分文字列を数える(Count Binary Substrings) 問題説明:与えられた文字列において ...

6月2日 16:49 投稿

CSP-Sで出題される可能性のあるテンプレート集(非原创、各所からまとめ)

CSP-Sの点数を上げるためのテンプレート集 数学 高速累乗 int pow_mod(int base, int exp) { int result = 1; while (exp > 0) { if (exp & 1) result = (result * base) % MOD; base = (base * base) % MOD; exp >>= 1; } return result; } ルーカスの定理(逆元の線形計算付き) int inv[N], fact[N], fact_inv[N ...

5月22日 01:39 投稿