2024年蓝桥杯コンテスト対策:重要知識と試験テクニック
過去問
2023年第十四回蓝桥杯C++B組の振り返り
2022年
2021年
蓝桥杯公式サイトの問題演習
⭐試験テクニック⭐
まず暴力解法(時間計算量の高い解法)を考えます → 部分点を獲得
データ範囲から正しい時間計算量を判断し、その計算量に基づいてアルゴリズムの範囲を特定します。
暴力解法:問題文のプロセスをシミュレーションします。
時間計算量:https://www.acwin ...
7月22日 18:52 投稿
Pythonプログラミング課題 第3週
7. 数値 a を1〜9の範囲から選び、項数を指定できるようにして、以下の式の結果を求めなさい:
a + aa + aaa + … + aaaaaaaaa
8. 2つのソート済みリストをマージし、結果もソートされた状態にすること
9. 非負整数の配列 A が与えられる。すべての偶数を奇数より前に配置しなさい
翌日
1. n+1 個の整数からなる配列 nums があり、各要素は 1 から n の間の値である。重複す ...
7月22日 18:16 投稿
LeetCode 315: 右側にあるより小さい要素の数を計算する
整数配列 nums が与えられた場合、指定された要件に従って新しい配列 counts を返してください。配列 counts は以下の性質を持つ必要があります:counts[i] の値は nums[i] の右側にある nums[i] より小さい要素の数です。
例 1:
<strong>入力:</strong>nums = [5,2,6,1]
<strong>出力:</strong>[2,1,1,0]
<strong>説明:</strong> ...
7月21日 03:10 投稿
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 投稿
牛客周赛 Round 69 問題解説
Cの構築問題
解法
AとBの絶対差と最大値の和を取ることで、第三項を構築できます。
コード
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int a, b;
cin >> a >> b;
int d = abs(a - b);
cout << max(a, b) + d << &q ...
7月20日 03:34 投稿
逆順配列
逆順配列とは?配列の要素を逆の順序に並べ替える操作です。例えば、入力が 1 4 7 9 3 の場合、出力は 3 9 7 4 1 となります。方法1:インプレースでの逆順この方法では、追加の配列を使用せず、元の配列内で要素を直接交換します。左右から要素を交互に交換し、中心に向かって進んでいきます。#include <stdio.h>
#define MAX_SIZE 10
void reverse_in_place(int a ...
7月20日 03:14 投稿
デザインパターン:戦略パターン入門
はじめに
先日、『Alibaba Java開発規約』を読んでいたところ、以下のような推奨規格が見つかりました:
3層を超えるif-elseの論理判断コードでは、ガード節、戦略パターン、状態パターンなどを利用して実装することができます
この「戦略パターン(Strategy Pattern)」がどのような解決策なのか気になり、調べてみることにしました。
定義:
戦略パターンは、一 ...
7月19日 20:46 投稿
アルゴリズムのインデックス解析:データ構造から問題解決まで
アルゴリズムのインデックス解析:データ構造から問題解決まで
アルゴリズムの学びは、知識の蓄積と問題解決能力の向上を目的とした技術的な探求です。この記事では、アルゴリズム関連の知識体系を整理し、学びの方向性を示します。
1. 多様なAPIの役割
APIはアルゴリズムの実装において重要な役割を担います。効率的なプログラミングを可能にするため、さまざまな機能 ...
7月19日 20:28 投稿
動的計画法の応用とコード実装
動的計画法の基本概念
動的計画法(Dynamic Programming、以下DP)は、問題を小さなサブ問題に分解し、その解を記憶して再利用することで効率的に解決するアルゴリズム手法です。この方法は、重複計算を回避し、時間効率を大幅に向上させます。
dp[k]:サブ問題の解を保持する配列
初期条件の設定
状態遷移方程式の導出
メモリ節約のためのローリング変数や配列の活用
...
7月19日 03:18 投稿
動的計画法における最長増加部分列モデル
動的計画法を用いた最長増加部分列(LIS)のアルゴリズムとその応用について解説します。最長増加部分列は、与えられた数列の中から単調に増加する部分列の中で最も長いものを求める問題です。このモデルは、様々な最適化問題に応用可能です。
最長増加部分列の基本概念
最長増加部分列問題は、与えられた数列において、各要素が前の要素よりも大きくなるように選んだ部分 ...
7月18日 19:13 投稿