<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 執行加減命令后打印修改后的數組 > 原文: [https://www.geeksforgeeks.org/print-modified-array-executing-commands-addition-subtraction/](https://www.geeksforgeeks.org/print-modified-array-executing-commands-addition-subtraction/) 給定大小為'n'的數組和給定的大小為'm'的命令集。 每個命令由四個整數 q,l,r,k 組成。 這些命令具有以下類型: * 如果 q = 0,則將'k'添加到范圍'a'至'b'的所有整數中(1 < = a < = b < = n)。 * 如果 q = 1,則將'a'到'b'范圍內的所有整數減去'k'(1 < = a < = b < = n)。 **注意**:最初,所有數組元素都設置為“ 0”,而數組索引從“ 1”開始。 ``` Input : n = 5 commands[] = {{0 1 3 2}, {1 3 5 3}, {0 2 5 1}} Output : 0 2 -1 -1 -3 Explanation First command: Add 2 from index 1 to 3 >= 2 2 2 0 0 Second command: Subtract 3 from index 3 to 5 >= 2 2 -1 -3 -3 Third command: Add 1 from index 2 to 5 >= 2 3 0 -2 -2 ``` **簡單方法**是通過從左索引(l)到右索引(r)進行迭代來執行每個命令,并根據給定命令更新每個索引。 該方法的時間復雜度為 O(n * m) **更好的方法**是使用分域樹(BIT)或段樹。 但這只會最優化 log(n)時間,即整體復雜度將變為 O(m * log(n)) **高效方法**是使用簡單的數學方法。 由于所有命令都可以脫機處理,因此我們可以將所有更新存儲在臨時數組中,然后最后執行它。 * 對于命令“ **0** ”,在 **l <sup>th</sup>** 中添加“ **+ k** ”和“ **-k** ”。 **(r + 1)個<sup>第</sup>** 個索引元素。 * 對于命令“ **1** ”,在 **l <sup>th</sup>** 中添加“ **-k** ”和“ **+ k** ”。 和**(r + 1)<sup>第</sup>** 個索引元素。 之后,對每個索引' **i** '的所有元素求和,從 1 <sup>st</sup> 索引開始,即 **a <sub>i</sub>** 將包含總和 從 1 到第<sup>索引的所有元素的索引。 這可以通過動態編程輕松實現。</sup> ## C++ ```cpp // C++ program to find modified array // after executing m commands/queries #include<bits/stdc++.h> using namespace std; // Update function for every command void updateQuery(int arr[], int n, int q, int l, ?????????????????int r, int k) { ????// If q == 0, add 'k' and '-k' ????// to 'l-1' and 'r' index ????if (q == 0){ ????????arr[l-1] += k; ????????arr[r] += -k; ????} ????// If q == 1, add '-k' and 'k' ????// to 'l-1' and 'r' index ????else{ ????????arr[l-1] += -k; ????????arr[r] += k; ????} ????return; } // Function to generate the final // array after executing all? // commands void generateArray(int arr[], int n) { ????// Generate final array with the? ????// help of DP concept ????for (int i = 1; i < n; ++i) ????????arr[i] += arr[i-1]; ????return; } // Driver program int main() { ????int n = 5; ????int arr[n+1]; ????//Set all array elements to '0' ????memset(arr, 0, sizeof(arr)); ????int q = 0, l = 1, r = 3, k = 2; ????updateQuery(arr, n, q, l, r, k); ????q = 1 , l = 3, r = 5, k = 3; ????updateQuery(arr, n, q, l, r, k); ????q = 0 , l = 2, r = 5, k = 1; ????updateQuery(arr, n, q, l, r, k); ????// Generate final array ????generateArray(arr, n); ????// Printing the final modified array ????for (int i = 0; i < n; ++i) ????????cout << arr[i] << " "; ????return 0; } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看