蓝桥杯第22场小白入门赛2~5题

这场比赛开打第二题就理解错意思了,还以为只能用3个消除和5个消除其中一种呢,结果就是死活a不过去,第三题根本读不懂题意,这蓝桥杯的题面我只能说出的是一言难尽啊。。第四题写出来一点但是后来知道是错了,不会正解,补的,第五题根本没思路,也是补的思路。


消灭卡片icon-default.png?t=O83Ahttps://www.lanqiao.cn/problems/20035/learning/?contest_id=222标签:暴力

这道题的意思是用最少次数来解决全部卡片,有一次消灭三个,和一个消灭5个两种方法,但是无论选择哪种方法,一定要保证最后没有剩余,也就是消灭必须是一次性的是正好消灭的,不能最后剩4个,然后选择用一次5个消灭的方法,这是不允许的。

思考思路就是尽可能选择用一次消灭5个的,这样使得最后次数最少,如果能整除就没有然后了,如果是余1,那就少用一次5连,变成剩六个然后两次三连,如果余2,就是少用两次五连,然后连着4个三连,以此类推,可以发现只要总数n是够的,总是可以被消灭的,不能被消灭的情况只会发生在n不够的情况里,详见代码。

#include <iostream>
using namespace std;
int t, n;
int main()
{cin >> t;while (t -- ){cin >> n;if (n < 5){if (n % 3 == 0 ) cout << 1 << endl;else cout << -1 << endl;continue;}if (n % 5 == 0 ) cout << n / 5 << endl;else if (n % 5 == 1 && n >= 6 ) cout << n / 5 - 1 + 2 << endl;else if (n % 5 == 2 && n >= 12) cout << n / 5 - 2 + 4 << endl;else if (n % 5 == 3) cout << n / 5 + 1 << endl;else if (n % 5 == 4 && n >= 9) cout << n / 5 - 1 + 3 << endl;else cout << -1 << endl;}return 0;
}

3.招募队员【算法赛】 - 蓝桥云课icon-default.png?t=O83Ahttps://www.lanqiao.cn/problems/20036/learning/?contest_id=222标签:前缀标记、数组

第三题招募队员,题面说的是需要选择连续区间【l,r】我以为的是一队五个人中选择【l,

r】区间,然后剩下的行也是这样选择,看最后能得到最多几个队员,但是与样例对不上。。就比如说选择2-4区间,然后第二行也这么选,看结果。后来看题解才发现是选择连续【l,r】是跨行的,不能间断的选择区间,然后该区间每一行都出现过1-5中任意数字的情况,比如说第一行出现过1,第二行也出现过,那么就连起来了,但是第三行没有出现,那么就是最多能选两个。是这样的,而且1-5的数字区间互不影响,并不是说前两行为了1而选择的区间,那么2也一定要选择该区间,每个数字都可以选择任意的连续的包含该数字的区间,求最多能选多少人,注意只有连续区间才能选人累加,不是连续区间要重新计算选人最大值。

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int a[N][6], n;
int main()
{cin >> n;for (int i = 1; i <= n; ++ i )for (int j = 1; j <= 5; ++ j ){int x; cin >> x;a[i][x] = 1;}for (int k = 1; k <= 5; ++ k ){int sum = 0, t = 0;for (int i = 1; i <= n; ++ i ){if (a[i][k] == 1 ) t ++;else t = 0;sum = max(sum, t);}cout << sum << ' ';}return 0;
}

这里给出的做法是,每一行在读入数字时候,就做上标记,标记是来标明该行是否存在1-5的数字,然后依次计算1-5按顺序计算,看每一行是否有这个数字的标记,然后有就累加,否则清空,最后取最大值输出即可。


4.能量晶石【算法赛】 - 蓝桥云课icon-default.png?t=O83Ahttps://www.lanqiao.cn/problems/20029/learning/?contest_id=222标签:思维、数学

题面含义要求找到最小去能量矿脉的次数,由于dp不熟,比赛时候我选择使用二分法来做,然后排序后判断,相邻数字插值,将这个累加在变量t上,之后的每一次相邻都累加t比较,看最后累加多少t,然后再和二分答案比较,后来模拟一下发现是错误的,有很多时候虽然只有一个数字和其他数字差1,其他数字都相等,但是仍然需要进行多次累加,我就想着模拟找规律,以为是规律题,但是也没做出来。

正解思维是正向求解十分困难,要逆着想,一般情况我们模拟肯定就是让最大的那个人出去采矿,然后把矿分给其他人,让其他人加1,逆着想就是其他人加1,相当于我减1,假设你是最大的和其他人只差1,那么需要你去采矿分给别人,那我们主动丢出去一个,不就能达到相等了吗?依据这个思路,我们把出去给别人采矿让其他人全部+1的行为,变成自我放弃掉一些矿石,我们找到最少拥有矿石数目是多少,然后其他的人依次减掉这些累加一起,就是需要出去的次数,因为其他人都丢了结果就是全部数目相等,而其他人出去采矿,让别人增加矿石,最后要达到的目的也是为了让矿石数目相等,所以理论上来讲,答案是一致的。

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int a[N];
int main()
{int n;int mina = 1e9 + 10;cin >> n;for (int i = 0; i < n; ++ i ){int x; cin >> x;a[i] = x;mina = min(mina, x);}long long ans = 0;for (int i = 0; i < n; ++ i ) ans += a[i] - mina;cout << ans << endl;return 0;
}

5.缺失的环节【算法赛】 - 蓝桥云课icon-default.png?t=O83Ahttps://www.lanqiao.cn/problems/20031/learning/?contest_id=222标签:数学、思维

这道题容易re或mle之处在于枚举字符串时,枚举出的数字可能很大,大到数组装不进去这些数字,经过分析可知,字符串最长为1e5,且根据样例找规律,当长度为3时,可能的答案有0、1、2、3、4、5、6,也就是最多到n*(n+1)/ 2,数列是等差数列,根据等差数列公式就是那个式子了。所以最多长度为1e5的字符串,最大产生数字大概就是10^10/2,差不多是几个亿,而2的34次幂差不多就能涵盖所有情况,但是为了避免不必要的麻烦我们多判一段,当子串枚举没超过40我们都存到容器里,记得要开longlong,先预处理完字串构成的数字后,从最小值0开始看容器是否能找到,这里容器我们用的set,不用数组因为数组遍历是on的,容器set的count是ologn的。

#include <iostream>
#include <set>
using namespace std;
string s;
int n;
typedef long long ll;
int main()
{cin >> n >> s;set<ll> num;for (int i = 0; i < n; ++ i ){ll t = 0;for (int j = i; j < n; ++ j ){if (j - i > 40) break;t = t * 2 + (s[j] - '0');num.insert(t);}}int ans = 0;while (num.count(ans)) ans ++;cout << ans << endl;return 0;
}

以上便是全部内容,补完来看其实没那么难,但是很多东西就是自己想不到,或许多刷一点就可以了吧。。。

制作不易,有帮助的话,请三连支持蟹蟹

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

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

相关文章

‘视’不可挡:OAK相机助力无人机智控飞行!

南京邮电大学通达学院的刘同学用我们的oak-d-lite实现精确打击无人机的避障和目标识别定位功能&#xff0c;取得了比赛冠军。我们盼望着更多的朋友们能够加入到我们OAK的队伍中来&#xff0c;参与到各式各样的比赛中去。我们相信&#xff0c;有了我们相机的助力&#xff0c;大家…

最小生成树——Kruskal、Prim算法

图的存储&#xff1a; 高阶数据结构——图 文章目录 目录 文章目录 一、kruskal算法 二、Prim算法 前言 连通图中的每一棵生成树&#xff0c;都是原图的一个极大无环子图&#xff0c;即&#xff1a;从其中删去任何一条边&#xff0c;生成树 就不在连通&#xff1b;反之&#xf…

集群聊天服务器(9)一对一聊天功能

目录 一对一聊天离线消息服务器异常处理 一对一聊天 先新添一个消息码 在业务层增加该业务 没有绑定事件处理器的话消息会派发不出去 聊天其实是服务器做一个中转 现在同时登录两个账号 收到了聊天信息 再回复一下 离线消息 声明中提供接口和方法 张三对离线的李…

华为再掀技术革新!超薄膜天线设计路由器首发!

随着Wi-Fi技术的不断进步&#xff0c;新一代的Wi-Fi 7路由器凭借其高速率、低延迟、更稳定的性能受到了广泛关注。它能够更好地满足现代家庭对网络性能的高要求&#xff0c;带来更加流畅、高效的网络体验。9月24日&#xff0c;华为在其秋季全场景新品发布会上推出了全新Wi-Fi 7…

【阅读记录-章节2】Build a Large Language Model (From Scratch)

目录 2.Working with text data2.1 Understanding word embeddings2.2 Tokenizing text通过一个简单的实验来理解文本的词元化概念关键概念 2.3 Converting tokens into token IDs实现分词器类&#xff08;Tokenizer Class&#xff09;应用分词器测试文本的编码与解码通过分词器…

SDF,一个从1978年运行至今的公共Unix Shell

关于SDF 最近发现了一个很古老的公共Unix Shell服务器&#xff0c;这个项目从1978年运行至今&#xff0c;如果对操作系统&#xff0c;对Unix感兴趣&#xff0c;可以进去玩一玩体验一下 SDF Public Access UNIX System - Free Shell Account and Shell Access 注册方式 我一…

关于Qt C++中connect的几种写法

目录 1. 传统的槽函数写法 2. 使用函数指针的connect写法&#xff08;5.0&#xff09; 3. Lambda表达式作为槽函数&#xff08;C11&#xff09; 4.使用QOverload选择重载信号的写法 这connect函数就像是编程世界里的“茴”字&#xff0c;千变万化&#xff0c;各有千秋。咱们…

反向代理模块

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;将从服务器上得到的结果返回给客户端&#xff0c;此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说&#xff0c;反向代理就相当于…

用jquery做一个websocket客户端

先看效果图&#xff1a; 功能很简单&#xff0c;就是作为客户端连接websocket&#xff0c;并实现接受和发送消息。具体代码如下&#xff1a; <!DOCTYPE html> <html lang"zh-cn"> <head><meta charset"UTF-8"><meta name"…

抽象java入门1.5.3.2——类的进阶(中)

前期回顾&#xff1a;抽象java入门1.5.3.1——类的进阶https://blog.csdn.net/c_yanxin_ru/article/details/140858898?spm1001.2014.3001.5501 总结&#xff1a; 在代码溯源中&#xff0c;我发现了一个奇怪的东西&#xff0c;就是OUT不是类中类&#xff08;不是常规类的写法…

蓝桥杯每日真题 - 第17天

题目&#xff1a;&#xff08;最大数字&#xff09; 题目描述&#xff08;13届 C&C B组D题&#xff09; 题目分析&#xff1a; 操作规则&#xff1a; 1号操作&#xff1a;将数字加1&#xff08;如果该数字为9&#xff0c;变为0&#xff09;。 2号操作&#xff1a;将数字…

Ease Monitor 会把基础层,中间件层的监控数据和服务的监控数据打通,从总体的视角提供监控分析

1. 产品定位 Ease Monitor 有如下的产品定位&#xff1a; 关注于整体应用的SLA。 主要从为用户服务的 API 来监控整个系统。 关联指标聚合。 把有关联的系统及其指示聚合展示。主要是三层系统数据&#xff1a;基础层、平台中间件层和应用层。 快速故障定位。 对于现有的系统…

3D Gaussian Splatting 代码层理解之Part2

现在让我们来谈谈高斯分布。我们已经在Part1介绍了如何根据相机的位置获取 3D 点并将其转换为 2D。在本文中,我们将继续处理高斯泼溅的高斯部分,这里用到的是代码库 GitHub 中part2。 我们在这里要做的一个小改动是,我们将使用透视投影,它利用与上一篇文章中所示的内参矩阵…

一道算法期末应用题及解答

1&#xff0e;印刷电路板布线区划分成为n m 个方格&#xff0c;确定连接方格a 到方格b 的最短布线方案。 在布线时&#xff0c;只能沿直线或者直角布线&#xff0c;为避免交叉&#xff0c;已经布线的方格做了封锁标记&#xff0c;其他线路不允许穿过被封锁的方格&#xff0c;某…

揭开广告引擎的神秘面纱:如何在0.1秒内精准匹配用户需求?

目录 一、广告系统与广告引擎介绍 &#xff08;一&#xff09;广告系统与广告粗分 &#xff08;二&#xff09;广告引擎在广告系统中的重要性分析 二、广告引擎整体架构和工作过程 &#xff08;一&#xff09;一般概述 &#xff08;二&#xff09;核心功能架构图 三、标…

freertos任务调度学习

首先创建任务&#xff0c;创建好任务后&#xff0c;开启任务调度器&#xff0c;任务才能执行 1.开启任务调度器 2.启动第一个任务 3.任务切换

初始ArKTs 2

一.类 1.1 声明 类声明引入一个新类型&#xff0c;并定义其字段、方法和构造函数。 定义类后&#xff0c;可以使用关键字new创建实例 可以使用对象字面量创建实例 在以下示例中&#xff0c;定义了Person类&#xff0c;该类具有字段firstname和lastname、构造函数和方法full…

在云服务器搭建 Docker

操作场景 本文档介绍如何在腾讯云云服务器上搭建和使用 Docker。本文适用于熟悉 Linux 操作系统&#xff0c;刚开始使用腾讯云云服务器的开发者。如需了解更多关于 Docker 相关信息&#xff0c;请参见 Docker 官方。 说明&#xff1a; Windows Subsystem for Linux&#xff…

【IDER、PyCharm】免费AI编程工具完整教程:ChatGPT Free - Support Key call AI GPT-o1 Claude3.5

文章目录 CodeMoss 简介CodeMoss 的模型集成如何安装和配置 CodeMossIDER 插件安装步骤 CodeMoss 的实战使用AI 问答功能代码优化与解释优化这段代码解释这段代码 文件上传与对话联网查询与 GPT 助手联网查询GPT 助手 提升开发效率的最佳实践结语更多文献 CodeMoss 简介 CodeM…