Python3 配对问题

https://dmoj.ca/problem/coci08c2p3 进这个网站看题。写完在这个网站上成功跑出所有问题就行

img


def solve(n, ingredients):
  min_diff = float('inf')

  for i in range(1, 1 << n):
    total_sourness = 1
    total_bitterness = 0
    for j in range(n):
      if i & (1 << j):
        total_sourness *= ingredients[j][0]
        total_bitterness += ingredients[j][1]
    diff = abs(total_sourness - total_bitterness)
    min_diff = min(min_diff, diff)

  return min_diff

n = int(input())
ingredients = []
for i in range(n):
  sourness, bitterness = map(int, input().split())
  ingredients.append((sourness, bitterness))

result = solve(n, ingredients)
print(result)

网站打不开兄弟

第一行包含一个整数N,表示食材的数量。接下来的N行中,每行包含两个整数,表示每种食材的酸味和苦味。这些数字都是小于1000000000的。

根据这个输入,可以创建一个数据结构来存储这些信息。例如,可以使用一个二维数组或者一个结构体数组来存储每种食材的酸味和苦味。

举个例子,如果你想用C语言来实现这个输入


#include <stdio.h>

#define MAX_N 1000

struct Ingredient {
  int sourness;
  int bitterness;
};

int main() {
  int n;
  scanf("%d", &n);

  struct Ingredient ingredients[MAX_N];
  for (int i = 0; i < n; i++) {
    scanf("%d %d", &ingredients[i].sourness, &ingredients[i].bitterness);
  }

  // 在这里处理食材信息

  return 0;
}

在Python中,可以使用以下代码来实现输出酸味和苦味之间可能的最小差异。
首先读入食材的数量,然后定义一个名为min_diff的变量用于存储最小差异。我们将其初始化为无穷大,这样就可以保证之后更新min_diff的值时一定会比当前值小。

然后使用一个循环读入食材信息,每次读入时计算酸味和苦味之间的差异,并更新min_diff的值。在这里使用了Python的内置函数abs来计算绝对值,保证差异总是非负的。


# 读入食材数量
n = int(input())

# 定义最小差异变量并初始化为无穷大
min_diff = float('inf')

# 读入食材信息并更新最小差异
for i in range(n):
  sourness, bitterness = map(int, input().split())
  min_diff = min(min_diff, abs(sourness - bitterness))

# 输出最小差异
print(min_diff)

img


??


def func1(i,a,b):
    global x
    if i>n:        
        if a==1 and b==0:
            return None
        x=min(abs(a-b),x)
        return None
    func1(i+1,a*ls[i-1][0],b+ls[i-1][1])
    func1(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])
func1(1,1,0)
print(x)

img