洛谷 P1102 A B 數對 題解

2021-10-08 02:26:34 字數 1781 閱讀 2724

鏈結

出題是一件痛苦的事情!

相同的題目看多了也會有審美疲勞,於是我捨棄了大家所熟悉的 a+b problem,改用 a-b 了哈哈!

好吧,題目是這樣的:給出一串數以及乙個數字 c

cc,要求計算出所有 a−b

=c

a - b = c

a−b=

c的數對的個數(不同位置的數字一樣的數對算不同的數對)。

輸入共兩行。

第一行,兩個整數 n,c

n, c

n,c。

第二行,n

nn 個整數,作為要求處理的那串數。

一行,表示該串數中包含的滿足 a−b

=c

a - b = c

a−b=

c 的數對的個數。

輸入 #1

4 1

1 1 2 3

輸出 #1

3
對於 75

%75\%

75% 的資料,1≤n

≤2000

1 \leq n \leq 2000

1≤n≤20

00。對於 100

%100\%

100%

的資料,1≤n

≤2×1

05

1 \leq n \leq 2 \times 10^5

1≤n≤2×

105。

保證所有輸入資料都在 32

3232

位帶符號整數範圍內。

2017/4/29 新添資料兩組

使用map找出記錄,相同的數,並在之後相乘

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int n =

2e5;

int n, c;

int a[n +5]

;ll ans;

map<

int,

int> mp;

intmain()

sort

(a, a + n)

;for

(int i = n -

1; i >

1; i--)if

(mp[a[i]

]&& mp[a[i]

- c]

)printf

("%lld\n"

, ans)

;return0;

}

使用upper_boundlower_bound找出相同數字的個數。

#include

#include

#include

using

namespace std;

typedef

long

long ll;

const

int n =

2e5;

ll n, c;

ll a[n +5]

;ll ans;

intmain()

printf

("%lld\n"

, ans)

;return0;

}

洛谷 P1102 A B數對 題解

出題是一件痛苦的事情!題目看多了也有審美疲勞,於是我捨棄了大家所熟悉的 a b problem,改用 a b 了哈哈!好吧,題目是這樣的 給出一串數以及乙個數字 c,要求計算出所有 a b c 的數對的個數。不同位置的數字一樣的數對算不同的數對 第一行包括2個非負整數n和c,中間用空格隔開。第二行有...

洛谷P1102 A B 數對

題目描述 出題是一件痛苦的事情!相同的題目看多了也會有審美疲勞,於是我捨棄了大家所熟悉的 a b problem,改用 a b 了哈哈!好吧,題目是這樣的 給出一串數以及乙個數字 c,要求計算出所有 a b c 的數對的個數 不同位置的數字一樣的數對算不同的數對 輸入格式 輸入共兩行。第一行,兩個整...

P1102 A B 數對洛谷c 題解

題目描述 出題是一件痛苦的事情!相同的題目看多了也會有審美疲勞,於是我捨棄了大家所熟悉的 a b problem,改用 a b 了哈哈!好吧,題目是這樣的 給出一串數以及乙個數字 cc,要求計算出所有 a b ca b c 的數對的個數 不同位置的數字一樣的數對算不同的數對 輸入格式 輸入共兩行。第...