题目一:金币

题目一:金币

1.题目来源:

NOIP2015 普及组 T1,难度红色,入门签到题。

2.题目描述:

3.题目解析:

问题转化:求下面的一个数组的前 k 项和。

4.算法原理:

模拟

签到题,只需要进行简单的模拟就可以了~~~

我们可以定义两个变量 cur 和 tmp

tmp 表示当前加的是哪一个数。

cnt 表示当前这个数还要加多少次。

仔细观察,可以发现,1加1次,2加2次,3加3次,……,n加n次。

每加一次某一个数,这个数对应的 cnt --,当 cnt 为 0 时,tmp++, cnt = tmp;

5.代码实现:

#include <iostream>using namespace std;int main()
{int k; cin >> k;int ret = 0;int tmp = 1; // 当前加的数是 1int cnt = 1; // 当前这个数还需要加 1 次 for(int i = 1; i <= k; i++){ret += tmp;cnt--;if(cnt == 0){tmp++;cnt = tmp;}}cout << ret << endl;return 0;
} 

6.总结反思:

在算法竞赛中,签到题是一定要拿满分的,签到题要的是快准狠,竞赛时千万不能着急、慌张,想明白之后再写,遇到 bug 在草稿纸上仔细模拟,再说一遍,千万不要着急,越着急越错

题目二:接水问题

题目二:接水问题

1.题目来源:

NOIP2010普及组T2,难度橙色,签到题。

2.题目描述:

3.题目解析:

这道题,给了我一个深刻的教训 —— 一定要仔细读题!!!!!!

我在这道题卡了很长时间,刚开始没有看到初始接水顺序已经确定,以为可以自己安排。朝着贪心方向浪费了很多时间。

这道题其实就是一道简单的模拟题。直接按照题目模拟即可。

4.算法原理:

模拟+贪心,针对每一位学生,找出所有的水龙头中,最早结束的那一个,让他在那里接水

对于贪心正确性可以用交换论证法来证明。这里是显然正确的,就不再赘述了。

可以用一个小根堆来模拟,先扔 m 个 0 进去,然后不断取出堆顶元素,修改后再扔进去。最终结果就是小根堆堆中的最大值。

时间复杂度:O(n log m)

当然了,本题用数组来模拟也是可以的,时间复杂的:O(n * m)

5.代码实现:

用小根堆来模拟:

#include <iostream>
#include <queue>
#include <vector>using namespace std;int n, m;int main()
{cin >> n >> m;// 小根堆 priority_queue<int, vector<int>, greater<int>> heap;for(int i = 1; i <= m; i++){heap.push(0);}int ret = 0;for(int i = 1; i <= n; i++){int x; cin >> x;int t = heap.top(); heap.pop();t += x;heap.push(t);ret = max(ret, t);}cout << ret << endl;return 0;
} 

用数组来模拟:

#include <iostream>using namespace std;const int N = 110;int n, m;
int a[N]; // 存水龙头使用总时间信息 int main()
{cin >> n >> m;int ret = 0;for(int i = 1; i <= n; i++){int x; cin >> x;int mini = 0; // 要放入的水龙头的编号int d = 0x3f3f3f3f; // 最小值for(int j = 1; j <= m; j++){if(d > a[j]){d = a[j];mini = j;}} a[mini] += x;ret = max(ret, a[mini]);}cout << ret << endl;return 0;
} 

6.总结反思:

签到题一般不会很难,当发现自己做不出来时,可能是题目理解错了。

一定要仔细读题!!!

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

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

相关文章

C++核心语言元素与构建块全解析:从语法规范到高效设计

&#x1f4cc; 为什么需要双维度学习C&#xff1f;核心语言元素 → 掌握标准语法规则&#xff08;避免未定义行为Undefined behavior&#xff09;构建块&#xff08;Building Blocks&#xff09; → 像搭积木一样组合功能&#xff08;提升工程能力&#xff09; 例如&#xff1a…

RK3588开发板Ubuntu系统烧录

Ubuntu22.04——YOLOv8模型训练到RK3588设备部署和推理 文章中给出了通过ARM设备上面的NPU进行深度学习的模型推理过程,在此之前,我们在收到一块全新的rk3588开发板后,需要对其进行系统的烧录,这里以Ubuntu22.04系统为例。 目录 1.获取待烧录系统的镜像 2.烧录工具准备 2.1…

AI评测的科学之道:当Benchmark遇上统计学

AI评测的科学之道&#xff1a;当Benchmark遇上统计学 —— 如何客观评估大模型能力&#xff0c;避免落入数据陷阱 在人工智能尤其是大语言模型&#xff08;LLU&#xff09;爆发式发展的今天&#xff0c;各类模型榜单&#xff08;如Open LLM Leaderboard、LMSys Arena&#xff0…

CSS 基础入门教程:从零开始学习样式表

一、CSS 简介CSS&#xff08;Cascading Style Sheets&#xff0c;层叠样式表&#xff09;是一种用于描述 HTML 或 XML 等文档呈现方式的语言。它是现代网页设计的三大核心技术之一&#xff0c;与HTML&#xff08;结构层&#xff09;和JavaScript&#xff08;行为层&#xff09;…

图解简单选择排序C语言实现

1 简单选择排序 简单选择排序&#xff08;Simple Selection Sort&#xff09;是一种基础且直观的排序算法&#xff0c;其核心思想是通过重复选择未排序部分中的最小&#xff08;或最大&#xff09;元素&#xff0c;并将其放到已排序部分的末尾&#xff0c;逐步完成整个序列的排…

FPS游戏时,你的电脑都在干什么(CS2)

人物介绍&#xff1a;CPU > 你忠实的处理器 i5-13600KFGPU > 你花大价钱买的显卡 RTX3060&#xff08;不是自己的配置&#xff0c;自己的是XEON E5GTX1060&#xff0c;测不出来&#xff0c;上面是社区一个好心大哥的数据&#xff0c;较为精准&#xff09;&#…

MySQL完整重置密码流程(针对 macOS)

MySQL完整重置密码流程&#xff08;针对 macOS&#xff09; 1. 强制停止 MySQL 服务 sudo /usr/local/mysql/support-files/mysql.server stop sudo killall mysqld mysqld_safe # 确保所有进程停止2. 以安全模式启动&#xff08;跳过权限验证&#xff09; sudo /usr/local/my…

Python数据类型转换详解:从基础到实践

在Python编程中&#xff0c;数据类型转换是一项基础且频繁使用的操作。无论是处理用户输入、进行数值计算还是数据处理&#xff0c;都离不开类型转换。本文将系统介绍Python中的数据类型体系&#xff0c;详解类型转换的规则与实践技巧&#xff0c;帮助你在实际开发中灵活运用。…

智能制造——解读车企数字化转型构建高效经营管理数据治理体系【附全文阅读】

适应人群为车企数字化转型决策者、数据管理负责人、IT 部门从业者、财务及业务部门管理者。主要内容围绕车企数字化转型中经营管理数据治理体系构建展开,核心包括诊断背景(以经营管理数字化为切入点,聚焦财务业务在线化、零点月结等痛点,应对系统与数据问题);现状诊断(从…

STM32的UART奇偶校验注意

关键点&#xff1a;设置为9位数据位&#xff0c; STM32的UART奇偶校验注意_stm32串口奇校验初始化程序-CSDN博客https://blog.csdn.net/JacobFang/article/details/118993643 特此记录 anlog 2025年8月13日

Origin绘制正态分布直方图+累积概率图|科研论文图表教程(附数据格式模板)

免费查看完整教程(包括数据格式) ↑ ↑ ↑ 目录 本 期 导 读 No.1 理解图形 1 定义 2 图形特点 3 应用场景 No.2 画图教程 1 导入数据,绘制图形 2 设置绘图细节 本 期 导 读 直方图,以柱状高低直观展现各区间数据的分布密度,集中趋势、离散程度与异常…

Python入门第6课:文件操作之读写文本、CSV与JSON文件

Python入门第6课:文件操作之读写文本、CSV与JSON文件 作者: 蛋皮 标签: Python, 文件操作, 读写文件, 文本文件, CSV, JSON 在掌握了Python的基础语法、数据结构和函数之后,你的程序已经能够处理内存中的数据。但现实世界的数据通常存储在文件中。无论是用户的配置信息、日…

基于Uni-app+vue3实现微信小程序地图固定中心点范围内拖拽选择位置功能(分步骤详解)

一、功能概述与实现步骤1.1 功能需求显示地图并固定中心点标记绘制服务区域多边形边界实时检测拖拽后位置是否在服务区内提供位置确认和超出范围提示功能1.2 实现步骤分解第一步&#xff1a;初始化地图基础配置创建Map组件并设置基本属性定义服务区域多边形坐标设置地图初始中心…

《设计模式》抽象工厂模式

1.抽象工厂模式定义 抽象工厂模式&#xff08;Abstact Factory &#xff09;&#xff1a; 提供一个创建一系列相关或者相互依赖对象的接口&#xff0c;而无须指定它们具体的类。 1.1 UML图&#xff1a;2.抽象工厂模式举例&#xff1a; 业务场景&#xff1a;需要实现一个数据访问…

git stash临时保存工作区

通过git stash 可以灵活管理临时修改&#xff0c;保持工作区整洁&#xff0c;是多人协作或多任务切换时的常用工具&#xff0c;主要用于临时保存工作区和暂存区修改的命令&#xff0c;常用于以下场景&#xff1a;&#xff08;1&#xff09;需要切换分支&#xff0c;但不想立即提…

Vue 3.5+ Teleport defer 属性详解:解决组件渲染顺序问题的终极方案

&#x1f4cb; 概述 Vue 3.5 引入了 Teleport 的 defer 属性&#xff0c;这是一个重要的延迟解析特性。传统的 Teleport 在组件挂载时会立即解析目标容器&#xff0c;而 defer 属性允许推迟 Teleport 的目标解析&#xff0c;直到应用的其他部分挂载完成。 ⚠️ 传统 Teleport …

【102页PPT】某著名企业智能制造解决方案及智能工厂产品介绍(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 https://download.csdn.net/download/2501_92808811/91662620 资料解读&#xff1a;某著名企业智能制造解决方案及智能工厂产品介绍 详细资料请看本解读文章的最后内容 智能制造背景与整体规划…

Revisiting Character-level Adversarial Attacks for Language Models

文章目录**核心设计目标****关键步骤与实现细节**1. **候选位置选择&#xff08;Algorithm 1: get_top_locations&#xff09;**2. **扰动生成与筛选&#xff08;Algorithm 2: Charmer&#xff09;**3. **适配大语言模型&#xff08;LLM&#xff09;的攻击****实验中的性能表现…

(一)Python + 地球信息科学与技术 (GeoICT)=?

目录 引子 一、核心定位&#xff1a;Python 为何能重塑 GeoICT&#xff1f; 二、Python 在 GeoICT 中的关键应用领域 1. 空间数据处理&#xff08;GIS 基础&#xff09; 2. 遥感图像处理与解译 3. 空间分析与建模 4. 地学数据可视化 5. 时空大数据分析 三、Python GeoI…

OpenAI 发布了 GPT-5,有哪些新特性值得关注?国内怎么使用GPT5?

GPT-5很强&#xff0c;在LMAreana上获得了1481分&#xff0c;超过Gemini 2.5 Pro&#xff0c;夺回第一。 国内怎么使用GPT5&#xff1f;-> zhangfeidezhu.com/?p1033 这次发布的GPT-5系列包含三个模型&#xff1a; GPT-5&#xff1a;适合复杂推理、广泛的世界知识&#x…