UVa 1152 中途相遇法 和為0的四個值

2021-10-06 06:56:23 字數 1425 閱讀 7755

從a,b,c,d 四個陣列中(每乙個陣列中有n個元素)各挑出乙個,和為0,這樣的組合有多少?

顯然,o(n4)的列舉太差勁了

我們採用所謂**「中途相遇法」**,a,b陣列一組,c,d陣列一組,分別加和,得到part1和part2陣列,排序。之後在part2中二分查詢part1的每乙個元素的相反數。

注意:二分查詢不要找到了就完事兒了,還有注意是否有多個相等的和,比如,part1中有1,part2中『』1『』這個數出現了兩次,則匹配了兩次。

ac認證:

}在提交的時候出現presentation error情況! 提醒各位,最後一組輸出資料之後不要再列印一行空行了。

一般來講,presentation error 的情況是格式的錯誤。

uva 1152 和為0的4個值(中途相遇法)

sum為0的值sum問題可以表示如下 給定四個列表a,b,c,d的整數值,計算多少個四元組 a,b,c,d a b c d是這樣的a b c d 0.在下文中,我們假設所有列表具有相同的大小n。輸入輸入以一行上的單個正整數開始,表示後面的案例數,每個案例如下所述。該行後面是乙個空行,兩個連續輸入之間...

UVA 10125 中途相遇法

題意 給定乙個整數集合,找出最大的d,使得a b c d,a,b,c,d是集合中不同的元素 思路 如果單純的列舉a,b,c的複雜度是o n 3 的,為了降低複雜度,可以先把a b的情形都找出來,然後再列舉d和c,是否符合要求 ac include include include include in...

UVa 1152 和為0的四個值

暴力o n4 超時。思路1 二分。列舉所有a b a屬於a,依次類推 把所有 a b 記錄下來放在乙個陣列sum中,對sum排序。然後列舉所有 c d 在 sum 中二分查詢有幾個這樣的值,用upper bound lower bound 就是個數,累計到結果中。o n 2logn 執行2750ms...