この問題では、サイズ N の配列 res[] を取得します。私たちのタスクは、範囲合計クエリの後に、指定された配列から最初の配列を見つけることです。
[s, e, val] クエリを実行するときに配列 rel[] が返される開始配列を見つける必要があります。
各 [s, e, val] クエリの解は次のとおりです。
s -> 開始インデックス
e -> 終了インデックス
val ->配列内の各要素に追加する値を s から e まで更新します。
#この問題を理解するために例を挙げてみましょう。Input : rel[] = {7, 4, 8} Query[][] = {{1, 2, 1}, {0, 1, 3}} Output : {4, 0, 7}
説明 − の翻訳は次のとおりです。
説明 −
initialArray = {4, 0, 7}; query = {1, 2, 1}; finalArray = {4, 1, 8} initialArray = {4, 1, 8}; query = {0, 1, 3}; finalArray = {7, 4, 8}
#include <iostream> using namespace std; void calcInitialArrayQueries(int arr[], int n, int query[][3], int q) { for (int i = 0; i < q; i++) { for (int j = query[i][0];j <= query[i][1]; j++) { arr[j] = arr[j] - query[i][2]; } } for (int i = 0; i < n; i++) cout<<arr[i]<<" "; } int main() { int arr[] = { 5, 1, 8, 2, 9}; int n = sizeof(arr) / sizeof(arr[0]); int query[][3] = { {0, 2, -2}, {1, 4, 3}}; int q = sizeof(query) / sizeof(query[0]); cout<<"Initial array : "; calcInitialArrayQueries(arr, n, query, q); return 0; }
Initial array : 7 0 7 -1 6
以上がC++ で範囲合計クエリを実行した後、指定された配列から最初の配列を検索しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。