時間限制: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...