题解 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;
}
分类:
题解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现