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 55
```cpp

```
### after
F
fix bug  
feilong 已提交
56

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

```

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

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

F
fix bug  
feilong 已提交
68

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

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

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

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

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

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