T1 [JZOJ1420] 佳肴
题目描述
佳肴就是非常美味的菜的意思,佳肴最关键的是选择好原料。
现在有 $N$ 种原料,每种原料都有酸度 $S$ 和苦度 $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; }