https://dmoj.ca/problem/coci08c2p3
请进入此链接查看题目,要求运行时间不超过0.6s
pthon3
def hanshu(i,a,b):
global x
if i>n:
if a==1 and b==0:
return None
x=min(abs(a-b),x)
return None
hanshu(i+1,a*ls[i-1][0],b+ls[i-1][1])
hanshu(i+1,a,b)
x=float("inf")
n=int(input())
ls=[]
for i in range(n):
a,b=map(int,input().split())
ls.append([a,b])
hanshu(1,1,0)
print(x)
望采纳
from itertools import combinations
n = int(input())
ingredients = []
for i in range(n):
s, b = map(int, input().split())
ingredients.append((s, b))
smallest_difference = float('inf')
for combination in combinations(ingredients, 1):
total_sourness = 1
total_bitterness = 0
for ingredient in combination:
total_sourness *= ingredient[0]
total_bitterness += ingredient[1]
difference = abs(total_sourness - total_bitterness)
smallest_difference = min(smallest_difference, difference)
print(smallest_difference)
from itertools import combinations
from functools import reduce
import time
n = int(input())
t_v= []
for i in range(n):
v =list(map(int, input().split()))
t_v.append(v)
result = []
a = time.time()
for i in range(1, n + 1):
res = combinations(t_v, i)
res = list(res)
r = list(map(lambda x : reduce(lambda p, q:p +q[1],x,0), res))
r1 = list(map(lambda x : reduce(lambda p, q:p * q[0],x,1), res))
result.extend(list(zip(r, r1)))
res = min(result, key = lambda x: abs(x[0] - x[1]))
print(abs(res[0] - res[1]))
print(time.time() - a)
--result
4
1 7
2 6
3 8
4 9
1
0.0
如有帮助,采纳
def hanshu(i,a,b):
global x
if i>n:
if a==1 and b==0:
return None
x=min(abs(a-b),x)
return None
hanshu(i+1,a*ls[i-1][0],b+ls[i-1][1])
hanshu(i+1,a,b)
x=float("inf")
n=int(input())
ls=[]
for i in range(n):
a,b=map(int,input().split())
ls.append([a,b])
hanshu(1,1,0)
print(x)