在 Python 中用恰好两个项目计算美食的程序
假设我们有一个数组 deli,其中 deli[i] 是第 i 种食物的美味程度,我们必须从这个列表中找到我们可以制作的不同美食的数量。如果答案太大,则返回模 10^9 + 7 的结果。这里的一顿美餐是指恰好包含两种不同食物的一顿饭,其美味之和是 2 的幂。我们可以选择任意两种不同的食物来做一顿美餐。
因此,如果输入类似于 deli = [1,7,3,6,5],那么输出将是 3,因为我们可以将 (1,3)、(1,7) 和 (3,5) 对sum 是 2 的幂。
示例
让我们看看以下实现以获得更好的理解 -
from collections import Counterdef solve(deli):
m = 10**9 + 7
count = Counter(deli)
ans = 0
for i in count:
for n in range(22):
j = (1<<n)-i
if j in count:
if i == j:
ans += count[i] * (count[i]-1)
else:
ans += count[i] * count[j]
return (ans // 2) % 米
deli = [1,7,3,6,5]
print(solve(deli))
输入
[1,7,3,6,5]输出结果
3
以上是 在 Python 中用恰好两个项目计算美食的程序 的全部内容, 来源链接: utcz.com/z/331687.html