solution.md 1.3 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1
# 分配口罩
F
fix bug  
feilong 已提交
2

每日一练社区's avatar
每日一练社区 已提交
3 4 5 6 7 8 9 10 11 12 13
某市市长获得了若干批口罩,给定每批口罩的数量,市长要把口罩分配给市内的2所医院。

```
masks = [9090400, 8499400, 5926800, 8547000, 4958200, 4422600, 5751200, 4175600, 6309600, 5865200, 6604400, 4635000, 10663400, 8087200, 4554000]
```
由于物流限制,每一批口罩只能全部分配给其中一家医院。

市长希望2所医院获得的口罩总数之差越小越好。

请你计算这个差最小是多少?

每日一练社区's avatar
每日一练社区 已提交
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
下面的代码实现了这一功能,请你填补空白处的内容。

```cpp
#include <bits/stdc++.h>
using namespace std;

int ans = 0x3f3f3f3f;

int num[15] =
    {
        9090400, 8499400, 5926800,
        8547000, 4958200, 4422600, 5751200, 4175600, 6309600,
        5865200, 6604400, 4635000, 10663400, 8087200, 4554000};

void dfs(int u, int s1, int s2)
{
    if (u == 15)
    {
        ans = min(ans, abs(s1 - s2));
        return;
    }

    dfs(u + 1, s1 + num[u], s2);
    __________________
}

int main()
{
    dfs(0, 0, 0);
    cout << ans << endl;
    return 0;
}
```
每日一练社区's avatar
每日一练社区 已提交
47 48

## aop
F
fix bug  
feilong 已提交
49

每日一练社区's avatar
每日一练社区 已提交
50
### before
F
fix bug  
feilong 已提交
51

每日一练社区's avatar
每日一练社区 已提交
52 53 54
```cpp

```
每日一练社区's avatar
每日一练社区 已提交
55

每日一练社区's avatar
每日一练社区 已提交
56
### after
F
fix bug  
feilong 已提交
57

每日一练社区's avatar
每日一练社区 已提交
58 59 60 61 62
```cpp

```

## 答案
F
fix bug  
feilong 已提交
63

每日一练社区's avatar
每日一练社区 已提交
64
```cpp
每日一练社区's avatar
每日一练社区 已提交
65
    dfs(u + 1, s1, s2 + num[u]);
每日一练社区's avatar
每日一练社区 已提交
66 67 68
```
## 选项

F
fix bug  
feilong 已提交
69

每日一练社区's avatar
每日一练社区 已提交
70
### A
F
fix bug  
feilong 已提交
71

每日一练社区's avatar
每日一练社区 已提交
72
```cpp
每日一练社区's avatar
每日一练社区 已提交
73
    dfs(u, s1, s2 + num[u]);
每日一练社区's avatar
每日一练社区 已提交
74 75 76
```

### B
F
fix bug  
feilong 已提交
77

每日一练社区's avatar
每日一练社区 已提交
78
```cpp
每日一练社区's avatar
每日一练社区 已提交
79
    dfs(u + 1, s1 + num[u], s2 + num[u]);
每日一练社区's avatar
每日一练社区 已提交
80 81 82
```

### C
F
fix bug  
feilong 已提交
83

每日一练社区's avatar
每日一练社区 已提交
84
```cpp
每日一练社区's avatar
每日一练社区 已提交
85
    dfs(u + 1, s1 + num[u], s2);
每日一练社区's avatar
每日一练社区 已提交
86
```