卡牌——蓝桥杯十三届2022国赛大学B组真题

2024-05-08 19:52

本文主要是介绍卡牌——蓝桥杯十三届2022国赛大学B组真题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

样例输入
4 5
1 2 3 4
5 5 5 5
样例输出
3
样例说明

这 5 张空白牌中,拿2张写1,拿1张写2,这样每种牌的牌数就变为了3,3,3,4, 可以凑出 3套牌,剩下2张空白牌不能再帮助小明凑出一套。
评测用例规模与约定
对于30%的数据,保证n ⩽ \leqslant 2000;
对于100%的数据,保证n ⩽ \leqslant 2 × 1 0 5 \times 10^{5} ×105 ; a i , b i ⩽ a_{i},b_{i}\leqslant ai,bi 2n;m ⩽ \leqslant n 2 ^{2} 2.

运行限制
  • 最大运行时间:1s
  • 最大运行内村:521M

问题分析

可以想象成一个木桶问题:每张卡牌的a值实际上就是木桶的每一块木板的高度,而d值就是此块木板还能延长的长度,而输入的m就是现有的木料,该问题实际上就是问我应该如何合理使用我有的木料来延长木板使得木桶能装的水的高度最高。众所周知木桶能装的水取决于最短的那块木板,因此要尽量拔高木板的下限。

方法一

将所有卡牌按照a的大小从小到大依次排列,然后从左到右依次遍历,模拟此过程:若左边牌的牌数比下一张牌的牌数要少,我们要拔高下限,则就要使左边牌的牌数尽可能接近右边的牌数,最好相等,若相等,则继续往下遍历否则退出循环。

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
typedef long long LL;
struct node{//记录a值和b值int a,b;bool operator<(const node &nd)const{if(a!=nd.a)return a<nd.a;return b<nd.b;}
};
int main() {int n,ans,mind;//ans:最后的答案也就是所有牌数的下限,mind:左边牌的最小d,也就是左边牌还能一起每张增加的牌数LL m;cin>>n>>m;vector<node> vec(n);for(int i=0;i<n;i++){cin>>vec[i].a;}for(int i=0;i<n;i++){cin>>vec[i].b;}sort(vec.begin(),vec.end());//将每张牌排序ans=vec[0].a;//初始化mind=vec[0].b;int i=1;for(i=1;i<n;i++){if(vec[i].a!=vec[i-1].a){//如果左边牌数少于此牌的牌数if(vec[i-1].a+mind<vec[i].a||m<i*(vec[i].a-vec[i-1].a))break;//如果左边的牌数无法与此牌牌数相等则退出循环m-=i*(vec[i].a-vec[i-1].a);//m要减少i*(vec[i].a-vec[i-1].a)张牌:左边有i种牌,并且都与第i张牌的牌数差vec[i].a-vec[i-1].a张ans=vec[i].a;//更新左边牌平均数数mind-=(vec[i].a-vec[i-1].a);//更新最小d值}mind=min(mind,vec[i].b);//更新最小d值}ans+=min((int)(m/i),mind);//将最后剩余的牌均分给左边牌cout<<ans<<endl;return 0;
}

方法二

用优先队列每次从中选出a值最小的那种牌,然后给它手写一张,直到不能手写为止(d=0||m==0)

#include <bits/stdc++.h>
#define x first
#define y second
using namespace std;
typedef pair<int,int> PII;
const int N = 200010;
int n;
long long m;
int a[N],b[N];
int main()
{cin>>n>>m;priority_queue<PII,vector<PII>,greater<PII>> q;for(int i = 0;i<n;i++){cin>>a[i];}for(int i = 0;i<n;i++){cin>>b[i];q.push({a[i],b[i]});}while(m){auto t = q.top();if(t.y == 0){//不能再手写了break;}q.pop();t.x++;//a++t.y--;//d--m--;q.push({t.x,t.y});}cout<<q.top().x<<endl;return 0;
}

这篇关于卡牌——蓝桥杯十三届2022国赛大学B组真题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/971279

相关文章

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

Windwos +vs 2022 编译openssl 1.0.2 库

一 前言 先说 结论,编译64位报错,查了一圈没找到解决方案,最后换了32位的。 使用qt访问web接口,因为是https,没有openssl库会报错 QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());if (reply){if (reply->error() == QNetworkReply::NoError

(1995-2022年) 全国各省份-技术交易活跃度

技术交易活跃度是一个关键指标,用于衡量技术市场的交易频繁程度和活跃性。它不仅显示了市场参与者对技术交易的参与热情,而且交易的频率也体现了市场的活力。这一指标对于不同的利益相关者具有不同的意义: 对投资者而言,技术交易活跃度是把握市场趋势、评估交易策略和预测市场波动的重要工具。对企业来说,技术交易活跃度反映了其技术创新的活跃程度和市场竞争的激烈程度,有助于企业制定技术创新和市场竞争策略。对政策制定

2009年-2022年 地级市-环境污染处罚数据

环境污染处罚数据是环境保护领域中重要的信息资源,它记录了因违反环保法律法规而受到行政处罚或法律制裁的具体情况。这些数据对于提高公众的环保意识、促进企业采取环保措施以及推动环境治理具有重要作用。 数据内容概述 违法行为的主体:即受到处罚的个人或企业。违法事实:具体违反了哪些环保法律法规的行为。处罚依据:依据哪些法律法规进行处罚。处罚类型:如罚款、责令整改、停产整顿等。处罚金额:处罚的具体金额,通

大学四年三年技术旅途

近三年前从接触技术以来,尝试过许多成熟的技术,最新的技术,高端技术,当然是从低端技术起步的(ps:现在明白能解决问题的技术最重要,没有所谓的技术等级,你用arm开发系统,而别人就用51单片机就解决问了,这很明显),对于新技术的热爱花费了大量时间,造成了不专业,不精通,最后发现最喜欢的是嵌入式系统研制与开发,其次是实时视觉处理以及运动控制。但好处是视野很广,思维变得更加灵活,我发现对于一个问题

湖北民族大学2024年成人高等继续教育招生简章

湖北民族大学,这所承载着深厚文化底蕴和卓越教育理念的学府,在崭新的2024年再次敞开怀抱,热烈欢迎有志于深化学习、提升自我的成人学员们。今年的成人高等继续教育招生,不仅是学校对于终身教育理念的具体实践,更是为广大社会人士提供了一次难得的学习机会。 湖北民族大学,以其悠久的历史、优秀的师资和卓越的教学质量,早已在成人教育领域树立了良好的口碑。学校秉承“博学、博爱、立人、达人”的校训,致力于培养

▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch5 蒙特卡洛方法【model-based ——> model-free】

PPT 截取必要信息。 课程网站做习题。总体 MOOC 过一遍 1、视频 + 学堂在线 习题 2、 过 电子书 是否遗漏 【下载:本章 PDF GitHub 页面链接 】 【第二轮 才整理的,忘光了。。。又看了一遍视频】 3、 过 MOOC 习题 看 PDF 迷迷糊糊, 恍恍惚惚。 学堂在线 课程页面链接 中国大学MOOC 课程页面链接 B 站 视频链接 PPT和书籍下载网址: 【Gi

CTF-蓝帽杯 2022 初赛Misc计算机取证题目详解

使用工具:Volatility、Passware Kit、Arsenal Image Mounter、DiskGenius 题目文件如下: 首先要知道这些文件是什么: dmp后缀指Dump文件,是windows系统中的错误转储文件。包含计算机程序运行时的内存信息的文件。通常操作系统或应用程序在遇到系统崩溃、死机或其他严重错误时,会自动将程序运行环境的所有信息导出到一个.dmp文件中。所以

大学计算机

项目一 了解计算机 1.1 了解计算机的诞生及发展阶段 1.2 认识计算机的特点、应用和分类 1.计算机的特点  1. 计算机的特点 2.计算机的应用 3.计算机的分类 4.数量单位 1.3 了解计算机操作系统的概念、功能与种类 1.操作系统概念 2.操作系统的作用 1.计算机的特点1.计算机的特点 3. 操作系统的分类 4.了解手机操作系统

2000年 - 2022年 Fama-French三因子模型数据+代码

Fama-French三因子模型是由著名经济学家尤金·法玛(Eugene Fama)和肯尼斯·法兰奇(Kenneth French)提出的,旨在改进资本资产定价模型(CAPM),更全面地解释资产收益率的变化。该模型认为,除了市场风险溢价外,还有两个额外的风险因子可以解释股票或投资组合的超额回报率,即市值因子(也称为规模因子)和账面市值比因子。 以下是Fama-French三因子模型中涉及的关键指