跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++算法

2025 信奥赛 C++ 提高组 CSP-S 复赛真题及题解:员工招聘

综述由AI生成解析了 2025 信奥赛 C++ 提高组 CSP-S 复赛中的员工招聘问题。该问题属于算法竞赛中的贪心匹配类型,核心在于如何最大化招聘人数。通过对比应聘者技能值与岗位要求,利用排序和双指针策略进行高效匹配。文章提供了完整的 C++ 代码实现及复杂度分析,帮助读者掌握此类问题的解题思路。

疯疯癫癫发布于 2026/2/10更新于 2026/6/13.7K 浏览
2025 信奥赛 C++ 提高组 CSP-S 复赛真题及题解:员工招聘

员工招聘

题目描述

小 Z 和小 H 想要合伙开一家公司,共有 n 人前来应聘,编号为 1 ∼ n。每位应聘者有一个技能值 s_i。公司需要招聘 m 名员工,每个岗位对技能值有最低要求 r_j。若应聘者 i 的技能值 s_i ≥ r_j,则其可以胜任岗位 j。目标是最大化被成功招聘的人数。

解题思路

这是一个典型的贪心匹配问题。为了使招聘人数最大化,我们应该优先满足要求较低的岗位,或者让技能最高的应聘者去满足要求最高的岗位。这里采用排序后双指针或贪心的策略。

  1. 将应聘者按技能值从小到大排序。
  2. 将岗位要求从小到大排序。
  3. 遍历岗位要求,尝试用当前技能最低的合格应聘者填补。

代码实现

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    int n, m;
    if (!(cin >> n >> m)) return 0;
    
    vector<int> s(n);
    for (int i = 0; i < n; ++i) cin >> s[i];
    
    vector<int> r(m);
    for (int i = 0; i < m; ++i) cin >> r[i];

    sort(s.begin(), s.end());
    sort(r.begin(), r.end());

    int ans = 0;
    int ptr = 0;
    for (int i = 0; i < m && ptr < n; ++i) {
        if (s[ptr] >= r[i]) {
            ans++;
            ptr++;
        } else {
            // 当前应聘者技能不足,尝试下一个更高技能的
            ptr++;
        }
    }
    cout << ans << endl;
    return 0;
}

复杂度分析

  • 时间复杂度:O(N log N + M log M),主要消耗在排序上。
  • 空间复杂度:O(N + M),用于存储输入数据。

目录

  1. 员工招聘
  2. 题目描述
  3. 解题思路
  4. 代码实现
  5. 复杂度分析
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • WebAssembly 跨平台优化:FFmpeg.wasm 架构解析与性能提升
  • PHP 核心基础知识点梳理(二)
  • C++ vector 容器详解(一)
  • Java synchronized 底层原理:字节码、对象头与锁升级
  • 滑动窗口算法:长度最小的子数组
  • Copilot Pro 使用指南:模型配额与选型策略
  • llama.cpp 与 llama-server 安装部署验证
  • Vue 3 前端调试与开发指南
  • PingFang SC Regular 字体资源与使用说明
  • 前端如何实现用户回到上次阅读的位置
  • Seedance 2.0 双分支扩散变换器架构解析与工程实现
  • Android 开发中 OOM 问题的常见原因与解决方案
  • 银发族 AI 助手:AIGC 陪聊、防骗与解闷实战方案
  • ClawX:OpenClaw 可视化桌面客户端实战指南
  • 数据结构:带头双向循环链表的定义与实现
  • CentOS 7 Firewalld 基础:端口开放与 IP 白名单配置
  • Python 列表内存存储本质:差异原因与优化建议
  • OpenClaw macOS 安装与本地模型配置实战教程
  • 2024 年常用网络资源镜像站实测与使用指南
  • 如何在 VS Code 中关闭 GitHub Copilot 功能

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online