XDOJ1138 禎爺的蘋果

2021-06-25 07:02:59 字數 860 閱讀 4287

description

有一天,禎爺得到一堆蘋果,每個蘋果有乙個體積ai,他想從中任取兩個吃掉,並且剛好填飽肚子,禎爺想知道一共有多少種取法。

input

第一行:乙個整數c(c<=10),表示測試資料組數。

每組測試資料:

第一行:n,m分別表示蘋果數量和禎爺的肚子容量。

接下來n行,每行乙個整數ai,表示蘋果體積。

0 < n <= 100000, 0 <= m <= 1000000000, -1000000000 <= ai <= 1000000000

output

方案總數。

sample input2

2 51 4

3 10

5 5 5

sample output1

3hint

蘋果體積有負值。 

解題思路:

如果用列舉的方式肯定會tle,這裡用到字典的方式進行處理。

map[v] = v的個數t

那麼如果v1+v1=m,那麼方法數為c(t1,2) = t1*(t1-1)/2

如果v1+v2 = m,那麼方法數為t1*t2/2

#include#includeusing namespace std;

map::iterator iter;

int main()

long long ways = 0;

cout<}

return 0;

}

XDOJ括號匹配

類別 字串處理 時間限制 2s記憶體限制 1000kb 問題描述 表示式中的合法括號為 這三種括號可以按照任意的次序巢狀使用。請寫乙個程式,判斷給定表示式中的括號是否匹配,既左右括號順序和數量都匹配。輸入說明 輸入為乙個表示式字串,長度不超過50。輸出說明 對輸入的表示式,若其中的括號是匹配的,則輸...

XDOJ快速排序

問題描述 採用快速排序演算法,排序輸入的n個整數,prvotkey 樞軸 每次選取陣列第乙個數。輸出快速排序第一趟排序的結果。輸入格式 輸入的第一行包括乙個整數n 1 n 100 接下來的一行包括n個整數,空格隔開。輸出格式 按照要求排序後輸出,由空格分隔。樣例輸入 50 10 90 30 70 4...

XDOJ 分配寶藏

問題描述 兩個尋寶者找到乙個寶藏,裡面包含n件物品,每件物品的價值分別是w 0 w 1 w n 1 suma代表尋寶者a所獲物品價值總和,sumb代表尋寶者b所獲物品價值總和,請問怎麼分配才能使得兩人所獲物品價值總和差距最小,即兩人所獲物品價值總和之差的絕對值 suma sumb 最小。輸入說明 輸...