18727 數對問題一

2021-10-07 19:27:38 字數 840 閱讀 6241

時間限制:1000ms **長度限制:10kb

提交次數:0 通過次數:0

題型: 程式設計題 語言: 不限定

description

乙個長度為n的正整數序列,現在需要計算出有多少對數字的差的絕對值為c。

注意只要位置不同就認為是不相同的數對。

輸入格式

第一行,兩個整數 n, c。(1=輸出格式

僅一行,滿足條件的數對的個數。

輸入樣例

4 11 2 3 1

輸出樣例3提示

(a1,a2),(a2,a3),(a2,a4)共3個數對滿足條件。

本題可以用暴力的方法,直接雙層迴圈做也不會超時,但有更快的方法,我們可以觀察到,本題資料範圍都較小,都在一萬以內,所以可以用乙個標記陣列,每輸入乙個資料,則使該標記陣列距離其±c的元素自增,最後把下標為資料的標記陣列元素加起來再除以二即可。為什麼要除二?因為在這個機制下,會使資料重複出現。

如:輸入格式是

第一行 2 1

第二行 5 6

當輸入5的時候,4和6都會被標記自增,設標記陣列為a[n] 則a[4]++,a[6]++,但當輸入6的時候a[5]++;因此符合條件的數對會記錄兩次。

#include 

#include

using namespace std;

int num[

100010

],a[

200010];

int main

(void

)for

(i=1

;i<=n;i++

) cout

}

18727 數對問題一

description 乙個長度為n的正整數序列,現在需要計算出有多少對數字的差的絕對值為c。注意只要位置不同就認為是不相同的數對。輸入格式 第一行,兩個整數 n,c。1 輸出格式 僅一行,滿足條件的數對的個數。輸入樣例 4 11 2 3 1 輸出樣例3提示 a1,a2 a2,a3 a2,a4 共3...

問題 C 數對

題目描述 兩個整數a,b,如果他們某 數字相同了,那麼 a,b 就是 組合法的數對 沒有順序 現在給定了n個整數,問存在多少對合法的數對呢?輸入 第 個整數n。接下來n 每 個正整數。輸出 輸出 個整數,表示合法數對個數。樣例輸入 複製樣例資料312 12樣例輸出 2提示 對於100 的資料,n 1...

問題 C 數對

題目描述 兩個整數a,b,如果他們某 數字相同了,那麼 a,b 就是 組合法的數對 沒有順序 現在給定了n個整數,問存在多少對合法的數對呢?輸入第 個整數n。接下來n 每 個正整數。輸出輸出 個整數,表示合法數對個數。樣例輸入 複製樣例資料312 12樣例輸出2提示 對於100 的資料,n 1000...