题解 CF680A 【Bear and Five Cards】

来个map解法

对于这个题目,我的思路是这样的,既然是拿走2或3个一样的,我们把一样的挑出来,每个算出拿走的价值,最后用总数 - 最大价值,类似贪心思路

我采用的是unordered_map,速度会比map快

#include <iostream>
#include <unordered_map>
using namespace std;

unordered_map<int, int> mp; //定义map

inline int sum(unordered_map<int, int>& x)
{
    int ans = 0;
    unordered_map<int, int>::iterator first = x.begin();
    unordered_map<int, int>::iterator last = x.end();
    for(register unordered_map<int, int>::iterator it = first; it != last; ++it)
    {
        ans += (it -> second) * (it -> first);
    }
    return ans;
}

inline int max(const int& x, const int& y)
{
    return (x > y ? x : y);
}

int main()
{
    int x;
    for(register int i = 1; i <= 5; i++)
    {
        cin >> x;
        mp[x]++;
    }
    int all = sum(mp);
    if(mp.size() == 5)
    {
        cout << all << endl;
        return 0;
    }
    int sum = 0, a, b;
    a = b = 0;
    unordered_map<int, int>::iterator first = mp.begin();
    unordered_map<int, int>::iterator last = mp.end();
    for(register unordered_map<int, int>::iterator it = first; it != last; ++it)
    {
        if(it -> second > 1)
        {
            a = (it -> second >= 3 ? 3 * it -> first : 2 * it -> first);
        }
        b = max(a, b);
    }
    cout << all - b << endl;
    return 0;
}
posted @   HappyBobb  阅读(3)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示