刷蓝桥杯历年考题(更新至15届~)

第十五届

C++A组省赛

AcWing5980.训练士兵

方法一:树状数组:O(nlogn)

  • self-complete
/*先枚举组团,后分析每个士兵,有一个特点,组团费用是固定的,那当然是让所有士兵一块训练,训练完的士兵也不会有损失当还需要升级的士兵的金币之和小于组团时就各自训练,此时花费也已经固定了首先将经验按照从大到小排序,这样每次组团训练,会从后向前减少不需要训练的士兵,这样就能利用前缀和来判断是否需要单独训练每次组团先训练完一整类需要经验值相同的士兵再判断, 由于会对一整个区间进行修改求和,使用树状数组时间复杂度O(n)
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
#define int long longusing namespace std;const int N = 100010;struct Soldier{int coin, ep;bool operator< (const Soldier o) const{return ep > o.ep;}
}sl[N];int sc[N], tr[N];
int n, S;int lowbit(int x){return x & -x;
}void add(int x, int c){for (int i = x; i < N; i += lowbit(i))tr[i] += c;
}int sum(int x){int s = 0;for (int i = x; i; i -= lowbit(i))s += tr[i];return s;
}signed main(){scanf("%lld%lld", &n, &S);for (int i = 1; i <= n; i ++){scanf("%lld%lld", &sl[i].coin, &sl[i].ep);}sort(sl + 1, sl + n + 1);for (int i = 1; i <= n; i ++){sc[i] = sc[i - 1] + sl[i].coin;add(i, sl[i].ep - sl[i - 1].ep);}int res = 0;for (int i = n; i; i --){int cep = sum(i);if (cep > 0){if (sc[i] >= S){add(1, -cep);add(i, cep);res += S * cep;}else{res += sl[i].coin * cep;} }}printf("%lld\n", res);return 0;
}

方法二:哈希+整体操作(挖掘性质): O(n)

  • 😦
/*由于组团训练肯定是所有士兵一起参加更好,所以可以把过程分为两种情况,一种是所有士兵组团训练,一种是所有士兵单独训练,而哪些已经训练完成的士兵就不用管了每次比较是组团和单独训练的花费金额来判断选用哪种情况
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
#define int long longusing namespace std;const int N = 100010;int c[N], p[N];
int n, S;
int a[N * 100]; // a[k]哈希表,表示经过k轮后,完成训练后对应士兵的花费signed main(){scanf("%lld%lld", &n, &S);int maxt = 0;//一共只需要升maxt次所有士兵就能升满级int i_S = 0;//表示单独训练花费for (int i = 1; i <= n; i ++){scanf("%lld%lld", &c[i], &p[i]);maxt = max(maxt, p[i]);i_S += c[i];a[p[i]] += c[i];//训练多少轮后到达满级,此时对应的i_s将其去掉,未到满级是a[i]为0}int res = 0;for (int i = 1; i <= maxt; i ++){if (S < i_S){res += S;}else{res += i_S;}i_S -= a[i];}printf("%lld\n", res);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

合合信息智能图像处理技术,让你的设备更智能

目录 图像增强技术主要包括以下几个方面&#xff1a; 最近和一位朋友聊天&#xff0c;听到一些关于打印机的吐槽。 从20年开始&#xff0c;部分或者全部远程办公的企业渐渐多起来&#xff0c;wfh的打工人也在家添置了简易的必要办公设备&#xff0c;比如打印机。 在家用&…

CSS 选择器的优先级

一、基本概念 CSS 选择器的优先级决定了在样式冲突时&#xff0c;哪个样式规则将被应用到 HTML 元素上。通过理解 CSS 选择器的优先级&#xff0c;可以更好地控制网页元素的样式&#xff0c;避免样式冲突。 二、优先级计算规则 1. 内联样式 内联样式具有最高的优先级。 &l…

基于Transformer的编码器-解码器图像描述模型在AMD GPU上的应用

Transformer based Encoder-Decoder models for image-captioning on AMD GPUs — ROCm Blogs 图像描述&#xff0c;即基于生成式人工智能&#xff08;GenAI&#xff09;自动生成简洁的图像文本描述&#xff0c;在现实世界中有着非常重要的应用。例如&#xff0c;图像描述可以为…

多人强化学习

Gradient Counterfactual multi-agent policy gradients 这里有个后面流传很广的算法&#xff1a;COMA(counterfactual multu-agent) 文中有提到最简单的policy gradient的形式是Reinforce&#xff0c;公式如下&#xff1a; ∇θ J(θ) Eτ~πθ [∑t0T ∇θ log πθ(at | …

【JuMP.jl】非线性规划

[JuMP] 03 非线性规划 非线性规划模型 非线性规划问题是线性规划问题的自然推广&#xff0c; 在实际的工程问题中&#xff0c;优化问题中的目标函数与约束不会总是线性函数&#xff0c;因此非线性规划的求解功能是必要的。 min ⁡ x ∈ R n f 0 ( x ) s.t. l j ≤ f j ( x ) ≤…

力扣面试题 30 - 最小高度树

题目&#xff1a; 给定一个有序整数数组&#xff0c;元素各不相同且按升序排列&#xff0c;编写一个算法&#xff0c;创建一棵高度最小的二叉搜索树。 示例&#xff1a; 给定有序数组: [-10,-3,0,5,9],一个可能的答案是&#xff1a;[0,-3,9,-10,null,5]&#xff0c;它可以表…

【从0带做】基于Springboot3+Vue3的场馆预约系统

大家好&#xff0c;我是武哥&#xff0c;最近给大家手撸了一个基于SpringBoot3Vue3的场馆预约系统&#xff0c;可用于毕业设计、课程设计、练手学习&#xff0c;系统全部原创&#xff0c;如有遇到网上抄袭站长的&#xff0c;欢迎联系博主~ 项目演示视频和教程视频 https://ww…

mysql json整数数组去重 整数数组精确查找并删除相应数据

都是针对整数数组 。低版本可用。懒得去查找资料的可以参考下。 json整数数组查找具体数据修改或者删除&#xff1a; update saas_new_tms.eda_logistics_limit set service_attribute json_remove(service_attribute,json_unquote(json_search(replace(service_attribute,…

unity与android拓展

一.AndroidStudio打包 1.通过Unity导出Android Studio能够打开的工程 步骤 1.设置导出基本信息&#xff1a;公司名、游戏名、图标、包名等关键信息 2.在File——>Build Settings中&#xff0c;勾选 Export Project 选项 3.点击Export 导出按钮 2.在Android Studio中打开Un…

计算机网络期末复习-part1-概述

1、互联网的组成 互联网由两大块组成。 1、边沿部分&#xff1a;由所有连接在互联网上的主机组成&#xff0c;是用户直接使用的部分。 2、核心部分&#xff0c;由大量网络和路由器组成&#xff0c;为边缘部分提供服务。 2、数据传送阶段的三种交换方式的主要特点 1、电路交…

【MySQL 进阶之路】索引的使用

5.索引的使用规则 在数据库管理系统&#xff08;DBMS&#xff09;中&#xff0c;索引是提高查询效率的关键机制之一。MySQL索引优化是指通过设计、调整和选择合适的索引策略&#xff0c;以提高数据库的查询性能和降低资源消耗。以下是一些关键的索引使用规则&#xff1a; 1. …

matlab中disp,fprintf,sprintf,display,dlmwrite输出函数之间的区别

下面是他们之间的区别&#xff1a; disp函数与fprintf函数的区别 输出格式的灵活性 disp函数&#xff1a;输出格式相对固定。它会自动将变量以一种比较直接的方式显示出来。对于数组&#xff0c;会按照行列形式展示&#xff1b;对于字符串&#xff0c;直接原样输出并换行。例如…

【数据中心建设资料】数据中心安全建设解决方案,数据中心整理解决方案,数据中心如何做到安全保障,数据中台全方案(Word全原件)

第一章 解决方案 1.1 建设需求 1.2 建设思路 1.3 总体方案 信息安全系统整体部署架构图 1.3.1 IP准入控制系统 1.3.2 防泄密技术的选择 1.3.3 主机账号生命周期管理系统 1.3.4 数据库账号生命周期管理系统 1.3.5 双因素认证系统 1.3.6 数据库审计系统 1.3.7 数据脱敏系统 1.3.8…

Go学习:变量

目录 1. 变量的命名 2. 变量的声明 3. 变量声明时注意事项 4. 变量的初始化 5. 简单例子 变量主要用来存储数据信息&#xff0c;变量的值可以通过变量名进行访问。 1. 变量的命名 在Go语言中&#xff0c;变量名的命名规则 与其他编程语言一样&#xff0c;都是由字母、数…

使用ensp搭建内外互通,使用路由跨不同vlan通信。

1.网络拓扑图 2.规则 &#xff08;1&#xff09;允许 &#xff08;自己&#xff09;ping通内外网&#xff0c;内外网随便一个pc就可以. &#xff08;2&#xff09; 允许&#xff08;电信&#xff09;ping通内外网&#xff0c;内外网随便一个pc就可以 &#xff08;时间问题不做…

slam学习笔记6---样例展示雅可比手推过程

背景&#xff1a;一直在使用模板、自动化求导&#xff0c;对于背后雅可比推导只剩一个基本概念&#xff0c;有必要好好梳理巩固一下。本人水平有限&#xff0c;若推导过程有误&#xff0c;欢迎评论区提出。 假设一个二维slam问题&#xff0c;使用欧式距离观测模型&#xff0c;…

基于Vue实现的移动端手机商城项目 电商购物网站 成品源码

&#x1f4c2;文章目录 一、&#x1f4d4;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站演示 &#x1f4f8;部分截图 &#x1f3ac;视频演示 五、⚙️网站代码 &#x1f9f1;项目结构 &#x1f492;vue代码预览 六、&#x1f527;完整…

使用 postman 传递 binary 类型的图片到后端接口遇到的坑

使用 psotman 传 binary 类型图片报错&#xff1a; -2024-12-04 [http-nio-9090-exec-1] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Required r…

SQL 优化经历:从 30248.271s 到 0.001s

今天分享一篇SQL优化的文&#xff0c;带你深入了解如何提升查询效率、降低系统负载。 无论你是数据库管理员还是开发者&#xff0c;都不能错过这份关于SQL性能优化的实用指南。让我们一起穿越数据库迷宫&#xff0c;发现隐藏在代码背后的优化黄金点&#xff01; 场景 用的数据…

开发者如何使用GCC提升开发效率Opencv操作

看此篇前请先阅读 https://blog.csdn.net/qq_20330595/article/details/144134160?spm=1001.2014.3001.5502 https://blog.csdn.net/qq_20330595/article/details/144134160?spm=1001.2014.3001.5502 https://blog.csdn.net/qq_20330595/article/details/144216351?spm=1001…