SMU春季2023竞赛第5轮(2023年江西省级程序设计竞赛官方赛题)

問題リンク 問題A. 木を掘って火を起こす S * V >= n さえ満たせばよい #include<bits/stdc++.h> #define int long long #define endl '\n' using namespace std; const int N = 2010,mod = 1e9 + 7; int n,s,v; void solve() { cin >> n >> s >> v; if(s * v >= n) cout << 1 << endl; else cout &lt ...

6月14日 20:52 投稿

アルゴリズム競技におけるC++ビット演算テクニック

ビット演算の基本と応用 ビット演算とシフト演算は、コンピュータの基本的な操作であり、バイナリレベルでのデータ操作を可能にします。アルゴリズム競技において、これらの操作は特定のタスクを効率的に実行するための強力なツールとなります。その特性と応用例を理解することは、競技プログラミングにおいて非常に重要です。 1. 演算子の優先順位 C++における演算子の優 ...

6月14日 17:14 投稿

競技プログラミング問題解説: EPIC Institute of Technology 2025

配列操作と最適化アルゴリズムの応用 A. 順序逆転検出 要素順を変更して、新しい配列を作成し、その配列が元の配列と異なる順序になるようにする問題です。 #include <vector> #include <iostream> using namespace std; void findDisorder(vector<int>& arr) { for (int i = 0; i < arr.size() - 1; ++i) { if (arr[i] > arr[i + 1]) ...

6月13日 22:16 投稿

Codeforces 1000~1100 第三週の問題解説

部分文字列と部分配列 目的は、文字列 a と b を部分配列として含む最短の文字列を見つけることです。その長さは a と b の長さの合計から、両方で共通する文字数を引いたものです。a は必ず含まれるため、b の各文字が a で順番に現れるかをチェックします。 注意: 部分文字列は連続した文字列ですが、部分配列は順序を保ちつつ連続性は必要ありません。 #include <bit ...

6月13日 22:13 投稿

C言語による順序表の実装:挿入、削除、検索、およびマージ

順序表の基本操作とC言語による実装 順序表(シーケンスリスト)は、メモリ上で連続したアドレス空間を使用してデータを格納する線形リストの一種です。C言語の配列を用いて、このデータ構造の基礎となる操作である位置による検索、値による検索、要素の削除、挿入、そして2つのリストの統合を実装します。 1. 指定位置による要素の取得 順序表では、物理的なメモリ配置が ...

6月13日 16:47 投稿

行列の特殊な走査と変換アルゴリズム

ジグザグ行列印刷 行列をジグザグ状に印刷するアルゴリズムを実装します。このアルゴリズムでは、2つのポイントを使用して行列を対角線方向に走査します。 以下の変数を定義します: int topLeftRow = 0 - 左上ポイントの行インデックス int topLeftCol = 0 - 左上ポイントの列インデックス int bottomRightRow = 0 - 右下ポイントの行インデックス int bottomRightCol ...

6月12日 22:48 投稿

C++における再帰関数の実装例

コラッツ予想(角谷予想) 自然数に対して、偶数なら2で割り、奇数なら3倍して1を足す操作を繰り返すと、最終的に1に到達するという予想。再帰関数で操作回数をカウントする。 #include <iostream> using namespace std; int countSteps(int num) { if (num == 1) return 0; if (num % 2 == 0) return 1 + countSteps(num / 2); return 1 + countSteps( ...

6月12日 20:24 投稿

鉄道の列車スケジューリング問題の効率的解法

鉄道駅の列車スケジューリングシステムでは、入口軌道と出口軌道の間にN本の平行軌道が配置されています。各列車は入口から任意の軌道を選択して進入し、最終的に出口から離脱します。例えば、入口で{8, 4, 2, 5, 3, 9, 1, 6, 7}の順番で待機している9本の列車がある場合、これらを番号の降順で出口から離脱させるために必要な最小限の平行軌道数を求める必要があります。 ...

6月12日 18:44 投稿

PythonとVBAによる相対的なランキングの実装

相対的なランキングの応用 相対的なランキングは現実世界で多くの応用があります。主なものは以下の通りです。 スポーツ競技のランキング: スポーツ競技では、相対的なランキングが選手やチームのパフォーマンスを評価するために頻繁に使用されます。例えば、サッカーのリーグ戦では、勝利数、得点、失点などの指標に基づいてチームのランキングが決定されます。 ...

6月12日 17:53 投稿

Javaで学ぶリンクリストの基本操作とアルゴリズム

本日の課題 LeetCode 203. リンクリスト要素の削除 LeetCode 707. リンクリストの設計 LeetCode 206. リンクリストの反転 基本概念の整理 ノードの追加処理では、新しいノード(current.next)を先に処理し、古いノード(previous.next)を後から処理します。 ノードの削除では、現在のノードを削除するには、その前のノードを知る必要があります。そのため、currentとp ...

6月11日 21:03 投稿