主要アルゴリズムとデータ構造:累積和、差分、二分探索、貪欲法
本稿では、プログラミングコンテストやアルゴリズム学習で頻繁に利用される基本的なアルゴリズムについて解説します。特に、配列操作を効率化する線形次元削減テクニック、そして二分探索、貪欲法といった重要な解法に焦点を当てます。
線形次元削減のテクニック
累積和と差分配列
累積和(Prefix Sum)は、配列の特定区間の合計値を効率的に計算するための手法です。与え ...
9月16日 03:52 投稿
基本的なアルゴリズム:離散化
離散化
#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 1000010;
int n, m;
vector<int> originalValues;
vector<int> addedValues;
vector<int> startPos, endPos;
vector<long long> diffArray;
bool canProcess(int limit)
{
fill(diffArray.begin(), diffArray.end(), 0);
for (int i = 0; i < li ...
8月29日 17:04 投稿