<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 題目描述 出題是一件痛苦的事情! 相同的題目看多了也會有審美疲勞,于是我舍棄了大家所熟悉的 A+B Problem,改用 A-B 了哈哈! 好吧,題目是這樣的:給出一串數以及一個數字 C,要求計算出所有 A - B = C 的數對的個數(不同位置的數字一樣的數對算不同的數對)。 ## 輸入格式 輸入共兩行。 第一行,兩個整數 N, C。 第二行,N 個整數,作為要求處理的那串數。 ## 輸出格式 一行,表示該串數中包含的滿足 A - B = C 的數對的個數。 ## 輸入輸出樣例 **輸入 #1** ``` 4 1 1 1 2 3 ``` **輸出 #1** ``` 3 ``` ## 說明/提示 對于 75% 的數據,`$ 1 \leq N \leq 2000 $`。 對于 100% 的數據,`$ 1 \leq N \leq 2 \times 10^5 $` 。 保證所有輸入數據絕對值小于 `$ 2^{30} $` ,且 `$ C \ge 1 $` 。 ## 題目分析 題目要求計算出所有 A - B = C 的數對的個數(不同位置的數字一樣的數對算不同的數對)。已知C,此時轉換下等式可得到 A - C = B。我們可以嘗試利用單調性對齊進行處理,若A呈單調增,由于C的值固定,所以B也是單調增的。我們可以提前對所有的數進行升序排列,以遍歷到的`a[i]`作為A,我們去統計與之匹配的`a[i]-C`的個數,由于排序過,所以所有能匹配的`a[i]-C`一定是連續的。 而由于單調性,`a[i]` 確定的答案區間`$ l_i \sim r_i $` 一定是與 `a[i-1]`確定的答案區間`$ l_{i-1}\sim r_{i-1} $` 重疊或者在其右側。這就不需要重復在`$ 1\sim n $` 的范圍內尋找和`a[i]` 對應的 `a[i]-C`了,只需在之前答案的基礎上往后找即可,這塊的復雜度為`$ O(n) $`的復雜度,整體復雜度為`$ O(nlogn) $`。 ## 代碼實現 ```cpp #include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int N=2e5+5; int a[N]; int n,c; //a-b=c => a-c=b int main(){ cin>>n>>c; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); int l=1,r=1; long long sum=0; for(int i=1;i<=n;i++){ int B=a[i]-c; while(r<=n && a[r]<=B) r++; while(l<=r && a[l]<B) l++; sum+=(r-l); } cout<<sum; 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>

                              哎呀哎呀视频在线观看