Leetcode 1711 大餐計數(桶)

2022-09-14 18:42:14 字數 1027 閱讀 5129

1711. 大餐計數

難度中等83收藏分享切換為英文接收動態反饋

大餐是指恰好包含兩道不同餐品的一餐,其美味程度之和等於 2 的冪。

你可以搭配任意兩道餐品做一頓大餐。

給你乙個整數陣列deliciousness,其中deliciousness[i]是第i道餐品的美味程度,返回你可以用陣列中的餐品做出的不同大餐的數量。結果需要對109 + 7取餘。

注意,只要餐品下標不同,就可以認為是不同的餐品,即便它們的美味程度相同。

示例 1:

輸入:deliciousness = [1,3,5,7,9]

輸出:4

解釋:大餐的美味程度組合為 (1,3) 、(1,7) 、(3,5) 和 (7,9) 。

它們各自的美味程度之和分別為 4 、8 、8 和 16 ,都是 2 的冪。

示例 2:

輸入:deliciousness = [1,1,1,3,3,3,7]

輸出:15

解釋:大餐的美味程度組合為 3 種 (1,1) ,9 種 (1,3) ,和 3 種 (1,7) 。

太久沒做題了,一開始寫了排序+二分列舉2的次冪結果t了,後來突然發現可以用桶給卡過去。。。1e6的陣列開在函式裡memset20次絲毫不慌

int countpairs(vector& deliciousness) 

// }

// return ans

int sz = deliciousness.size();

for(int i = 1; i <= (1 << 22); i *= 2)

} return ans;

}

Leetcode 1711 大餐計數

大餐 是指 恰好包含兩道不同餐品 的一餐,其美味程度之和等於 2 的冪。你可以搭配 任意 兩道餐品做一頓大餐。給你乙個整數陣列 deliciousness 其中 deliciousness i 是第 i 道餐品的美味程度,返回你可以用陣列中的餐品做出的不同 大餐 的數量。結果需要對 109 7 取餘...

LeetCode 1711 大餐計數 做題小結

大餐 是指 恰好包含兩道不同餐品 的一餐,其美味程度之和等於 2 的冪。你可以搭配 任意 兩道餐品做一頓大餐。給你乙個整數陣列 deliciousness 其中 deliciousness i 是第 i 道餐品的美味程度,返回你可以用陣列中的餐品做出的不同 大餐 的數量。結果需要對 109 7 取餘...

BZOJ1711 Dining 吃飯 最大流

核心思想 用乙個流量表示乙個方案。源點向每個食物連一條容量為1的邊。每個飲料向匯點連一條容量為1的邊。把每個奶牛拆成兩個點,入點向出點連一條容量為1的邊。每個食物向能吃它的奶牛的入點連一條容量為1的邊。每個奶牛的出點向它能喝的飲料連一條容量為1的邊。1流量代表乙個奶牛吃飽,跑最大流即可。includ...