T1 [JZOJ1420] 佳肴

题目描述

  佳肴就是非常美味的菜的意思,佳肴最关键的是选择好原料。

  现在有 $N$ 种原料,每种原料都有酸度 $S$ 和苦度 $B$ 两个属性,当选择多种原料时,总酸度为每种原料的酸度之积,总苦度为每种原料的苦度之和。

  正如大家所知,佳肴是既不酸也不苦的,因为要保证所选的原料使得总酸度和总苦度差的绝对值最小。

  由于佳肴不能只有水,所以必须至少选择一种佳肴。

分析

  签到题 无脑暴搜

2019-08-02 纪中NOIP模拟B组
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define N 15

int n, ans = inf;
int a[N], b[N];

void dfs(int now, int mul, int sum) {
    ans = min(ans, abs(mul - sum));
    for (int i = now + 1; i <= n; i++)
        dfs(i, mul * a[i], sum + b[i]);
}

int main() {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
        scanf("%d%d", a + i, b + i);
    for (int i = 1; i <= n; i++)
        dfs(i, a[i], b[i]);
    printf("%d\n", ans);
    
    return 0;
}
View Code

相关文章: