小红拿到了许多糖果,她希望吃掉一些糖果,但每种糖果至少需要留下一个作为收藏,即每种糖果都不能吃光。小红想知道,自己最多可以吃多少糖果。 输入描述:第一行输入一个正整数n,代表糖果的数量;第二行输入n个正整数ai,代表糖果的种类。1<=n,ai<=100。 麻烦使用c++解决该问题
时间: 2024-03-23 21:39:49 浏览: 116
好的,这道题目可以使用贪心算法来解决。具体思路是:先对所有糖果种类进行去重,然后将去重后的糖果种类按照数量从小到大排序。接着,从数量最小的糖果种类开始,每次取走一个糖果,直到不能再取为止。最后,统计剩下的糖果总数即可。
下面是C++代码实现:
```
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
int main() {
int n;
cin >> n;
set<int> kinds;
for (int i = 0; i < n; i++) {
int a;
cin >> a;
kinds.insert(a);
}
int cnt = 0;
for (auto it = kinds.begin(); it != kinds.end(); it++) {
int num = count_if(kinds.begin(), kinds.end(), [&](int x){ return x == *it; });
cnt += num - 1;
}
cout << n - cnt << endl;
return 0;
}
```
输入示例:
```
7
1 2 2 3 3 3 4
```
输出示例:
```
4
```
希望能对你有所帮助!
相关问题
小红拿到了许多糖果,她希望吃掉一些糖果,但每种糖果至少需要留下一个作为收藏,即每种糖果都不能吃光。小红想知道,自己最多可以吃多少糖果。 输入描述:第一行输入一个正整数n,代表糖果的数量;第二行输入n个正整数so,代表糖果的种类。1<=n,ai<=100。 麻烦使用c++解决该问题
好的,这是一道典型的贪心算法题目。我们可以先将糖果种类按数量从小到大排序,然后从最小的一种糖果开始,每次吃掉其中的一个,直到无法再吃为止。接着再继续吃次小的糖果,直到全部都不能再吃为止。最后统计吃掉的糖果总数即可。
以下是C++代码实现:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a, a + n); // 按数量从小到大排序
int cnt = 0;
for (int i = 0; i < n - 1; i++) { // 从小到大依次吃掉每种糖果
cnt += a[i] - 1;
}
cnt += a[n - 1] - 1; // 最后一种糖果也要留一个
cout << cnt << endl;
return 0;
}
```
希望能解决你的问题!
阅读全文
相关推荐

















