当前位置: 首页 > news >正文

笔试训练48天:

链接:https://ac.nowcoder.com/acm/problem/26221
来源:牛客网

题目描述

chika很喜欢吃蜜柑。每个蜜柑有一定的酸度和甜度,chika喜欢吃甜的,但不喜欢吃酸的。
一共有n个蜜柑,chika吃k个蜜柑,将获得所吃的甜度之和与酸度之和。chika想获得尽可能大的甜度总和。如果有多种方案,她希望总酸度尽可能小。
她想知道,最终的总酸度和总甜度是多少?

输入描述:

第一行有两个正整数n和k,分别代表蜜柑总数和chika吃的蜜柑数量。(1≤k≤n≤200000) 第二行有n个正整数ai,分别代表每个蜜柑的酸度。(1≤ai≤1e9) 第三行有n个正整数bi,分别代表每个蜜柑的甜度。(1≤bi≤1e9)

输出描述:

两个正整数,用空格隔开。分别表示总酸度和总甜度。

示例1

输入

3 2 1 3 4 2 2 5

输出

5 7

说明

选择1号和3号蜜柑,总酸度为5,总甜度为7,为最优解。

思路:topk问题类似,排序取大的

#include <iostream> #include <algorithm> using namespace std; const int N=2e5+10; typedef pair<int,int>PII;//<酸度,甜度> PII arr[N]; int n,k; int main() { int n,k; cin>>n>>k; for(int i = 0; i < n; i++) cin >> arr[i].first; for(int i = 0; i < n; i++) cin >> arr[i].second; sort(arr, arr + n, [&](const PII& a, const PII& b) { if(a.second != b.second) return a.second > b.second; else return a.first < b.first; }); long long s = 0, t = 0; for(int i = 0; i < k; i++) { s += arr[i].first; t += arr[i].second; } cout << s << " " << t << endl; return 0; }

知识点:

1.std::pair语法详解

template <class T1, class T2> struct pair { T1 first; // 第一个元素 T2 second; // 第二个元素 // 构造函数、赋值运算符等成员函数 };

2.sort(arr, arr + n, [&](const PII& a, const PII& b)

sort(arr, arr + n, [&](const PII& a, const PII& b) { if(a.second != b.second) return a.second > b.second; else return a.first < b.first; });

1.sort(arr, arr + n, ...)

  • arr是数组起始指针

  • arr + n是数组结束位置(指向最后一个元素之后)

  • 第三个参数是一个比较函数,用来决定两个元素的先后顺序

2.[&]—— 捕获列表

  • &表示按引用捕获所有外部变量(比如函数外的nk等)

  • 在这个 lambda 内部可以使用外部变量(尽管这里没有用到,但写[&]是允许的)

3.(const PII& a, const PII& b)—— 参数列表

  • PII就是std::pair<int, int>的别名

  • ab是待比较的两个元素

  • const &避免拷贝,提高效率

4. 函数体 —— 比较逻辑

if(a.second != b.second) return a.second > b.second; // 甜度不同时,甜度大的排在前面(降序) else return a.first < b.first; // 甜度相同时,酸度小的排在前面(升序)
  • a.second > b.second返回true表示a应该排在b前面

  • 这就是甜度降序,酸度升序的规则

http://www.jsqmd.com/news/906154/

相关文章:

  • 2026年游乐设备厂家推荐排行榜:学校/社区/公园/幼儿园/商场/室内/无动力游乐设备品牌精选! - 品牌企业推荐师(官方)
  • 2026平民寄件避坑指南:低价平台优缺点全解,德邦及主流快递最便宜下单渠道 - 时讯资讯
  • 2026 赤峰车膜门店推荐排行:首选这家,口碑与实力双第一 - 资讯快报
  • 南京专业中央空调风口清洗维修公司推荐:南京杰达家居科技有限公司服务详解 - 速递信息
  • LeetCode 210:课程表 II | 拓扑排序
  • 干掉繁琐搬运!企业级AI Agent免费社区版深度评测:中小企业数字化转型的“破局”利器
  • 从《半日》到‘半生’:用Python爬虫+数据分析,可视化一个男孩‘半天’里的世界变迁
  • 股票分析提示词
  • 2026年栀子花香水推荐深度测评:如何为不同需求匹配最佳方案? - 资讯快报
  • DeepSeek云服务部署终极手册(含Terraform模板+安全加固策略+压测报告PDF)——仅开放72小时
  • 2026年青少年同性好感困惑咨询机构选择指南:专业适配与长沙本地服务解析 - 资讯快报
  • 仅限本周开放!Gemini新功能Early Access通道关闭倒计时:企业级Prompt工程模板免费领
  • 最小 SOFA XML 场景结构 0-base.scn
  • 2026德邦大件寄件省钱指南!4个无套路靠谱平台,告别寄快递高价坑 - 时讯资讯
  • 告别重复数据!Jmeter压力测试中如何用随机参数绕过接口唯一约束(附函数助手详解)
  • 小鹿管家·小红书助手|多账户批量管理神器,让广告投放效率提升10倍!
  • 智能体时代:Elastic 在 Google Cloud Next 2026
  • PCA 数值计算
  • OpenClaw与Taotoken无缝对接实现自动化AI任务编排与执行
  • 法兰厂家选型参考:资质、交期、起订量三问排除法与决策路径 - 资讯快报
  • 2026 年 5 月会计备考突围:真题 APP 高效刷题实测与避坑指南 - 讲清楚了
  • LeetCode 743:网络延迟时间 | Dijkstra
  • 2026大连代理记账,认准大连盛仕达税务师事务所有限公司! - 小柏云
  • 技术原理篇:GEO(生成式引擎优化)核心技术架构与 AI 收录机制解析
  • 赤峰车衣贴膜哪家好?本地门店权威盘点(排行 + 地址 + 电话) - 资讯快报
  • 使用nodejs快速构建接入taotoken大模型api的聊天机器人
  • 2026兰州卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房渗漏 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 防水百科
  • ESP01S使用笔记01--ESP01s固件下载 - 少年
  • 2026 赤峰车衣门店电话|首选这家!口碑评分 4.9 分✨ - 资讯快报
  • 达梦数据库DM8视图入门——简化查询、权限控制与数据安全