【错题集-编程题】组队竞赛(排序 + 贪心)

简介: 【错题集-编程题】组队竞赛(排序 + 贪心)

牛客对应题目链接:组队竞赛_牛客笔试题_牛客网 (nowcoder.com)


一、分析题目

运用 贪心 思想:

  • 先将数组排好序。
  • 总和最大 -> 每个小组的分数尽可能大。
  • 最大的数拿不到,只能退而求其次拿到倒数第⼆个⼈的分数,再补上一个小的数来消耗。(消耗一个最大和一个最小的数)

二、代码

1、未看题解之前AC的代码

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
 
typedef long long LL;
 
const int N=1e5+10;
int a[3*N];
 
int main()
{
    int n;
    cin >> n;
    for(int i=0; i<3*n; i++)
        cin >> a[i];
    sort(a, a+3*n);
    vector<int> dp(n);
    int k=3*n-2;
    for(int i=0; i<n; i++)
    {
        dp[i]=a[k];
        k-=2;
    }
    LL sum=0;
    for(int i=0; i<n; i++)
        sum+=dp[i];
    cout << sum << endl;
    return 0;
}

2、值得学习的代码

#include <iostream>
#include <algorithm>
using namespace std;
 
typedef long long LL;
 
const int N = 1e5 + 10;
 
int n;
LL arr[N * 3];
 
int main()
{
    cin >> n;
    for(int i = 0; i < 3 * n; i++) cin >> arr[i];
    sort(arr, arr + 3 * n);
 
    int pos = 3 * n - 2, count = 1;
    LL ret = 0;
    while(count++ <= n)
    {
        ret += arr[pos];
        pos -= 2;
    }
 
    cout << ret << endl;
 
    return 0;
}

三、反思与改进

这道题刚开始没什么思路,后面按照题意去模拟思考就可以知道该如何拿到第二大的数了。其次,得注意这道题的输入数据是有 3*n 个的,所以在给数组开大小和排序,以及后面 k 的取值都需要从 3*n 开始考虑。再者,就是要注意这道题目所给的数据范围,因为是求和,所以可能会超出数据范围,那么这里就得用到 long long 来存储数据。


相关文章
|
7月前
|
算法
蓝桥杯算法竞赛第一周题型总结
蓝桥杯算法竞赛第一周题型总结
50 0
|
10月前
毛概期末考试要点总结
毛概期末考试要点总结
800 0
|
1月前
【错题集-编程题】活动安排(贪心 - 区间)
【错题集-编程题】活动安排(贪心 - 区间)
|
1月前
蓝桥杯省赛冲刺(1 补充)考试流程 做题技巧 手算题 杂题
蓝桥杯省赛冲刺(1 补充)考试流程 做题技巧 手算题 杂题
12 0
|
1月前
蓝桥备战--纪念品分组OJ532,贪心证明
蓝桥备战--纪念品分组OJ532,贪心证明
17 0
|
人工智能 算法 C++
【每日算法Day 88】超越妹妹教你如何做这道排序题
【每日算法Day 88】超越妹妹教你如何做这道排序题
|
索引
高职考技能提升教程013期 冒泡排序法和选择排序法
高职考技能提升教程013期 冒泡排序法和选择排序法
|
机器学习/深度学习 Java 数据安全/隐私保护
蓝桥杯的比赛流程和必考点
“巷子里的猫很自由,却没有归宿;围墙里的狗有归宿,终身都得低头。人生这道选择题,怎么选都会有遗憾。” 但不管怎样,一条路,有一条路上的风景。所以,你不必为面前的选择内耗,反正无论如何抉择,都难免遗憾;更不必为看似错误的选择痛悔,因为人生最大的遗憾,就是一直在遗憾过去的遗憾。人生的选择题,没有最优正解。——CSDN 博主 Java Fan
159 0
|
项目管理
第321场周赛赛后总结(前三题)+记录一道有意思的题目
前言 今天早上可能是浏览器出了点故障,一直没法打开力扣官网页面(但别的页面没问题)(别人都能进说明不是官网服务器的问题咯),错过了周赛(不过就算按时参加估计也是陪跑,就先这么安慰自己了),下午发现能进去了,赶紧找个时间补了一下题。
108 0
周赛313赛后做题分析及总结
本文为力扣周赛313赛后做题分析及总结。
80 0