2024第十五届蓝桥杯 C/C++ B组 参赛经历分享(以及部分题解)

前言

emmmmmm,dp杯居然不考dp了,蓝桥一直没怎么出过的高精度居然也考了(当时居然因为没太复习那块知识直接模拟混分了),题量也改了,总的来说反而简单了?。。。还好天津竞赛弱省,但愿能够省一吧。。。(图灵保佑)

好那么进入正题


第一题

好那么好,小水题一道(50 * 49 / 2)- (7 * 6 / 2)=1204,cout 出去,过啦!!(此处配有英雄哥圣音)


第二题

好,过过过过过过(卡壳),过不了一点啊啊啊啊啊啊啊,很数学的一道题,原谅我这烂数学,此处只能引用某乎大佬的推理过程

大佬的思路真是清清又晰晰啊。。。。我的烂代码写的判断四个方向,转来转去转来转去,也没能得出答案


第三题 

好那么好,蓝桥总是能在我快要崩溃的时候让我找回自信,很简单的一个模拟题,1e7的数据压根爆不了一点,吐槽一嘴:蓝桥正赛居然能遇见这么好写的题目了吗。。。

#include<iostream>
using namespace std;
bool is_good(int n){int flag = 1;while(n){if((n%10)%2 != flag++ %2){return false;}n /= 10;}return true;
}
int n,res;
int main()
{cin >> n;for(int i=1;i<=n;i++){if(is_good(i))res++;}cout << res;return 0;
}

第四题 

嘿,不看数据量还真以为蓝桥要沦落为水赛了嘿,这刚一看不来个小白都会写吗,转头就是个暴击

高精度还忘了,但愿前50%错不了


第五题 

 很好的数论,使我的大脑旋转,爱来自蓝桥。很想知道大佬们怎么一眼就看出这个式子等于gcd(a,b,c)的,我赛场上直接暴力了,不过就这个数据量来看,数据量再大一点就会爆炸,(再近一点靠近点快被融化)(bushi)愿kunkun保佑我骗分


第六题 

好,我真是太喜欢这种不在题目里玩一点心眼子,直接告诉你该干嘛的搜索题目了,数据量N小于等于10,那么我们直接上dfs ,走起

#include <iostream>
#include<set>
#include<vector>
using namespace std;
int f[8][2] = {{-1, 0} ,{-1, 1} ,{0 , 1} ,{1 , 1} ,{1 , 0} ,{1 ,-1} ,{0 ,-1} ,{-1,-1}
};
vector<int> ans;
set<pair<int, int>> se;
int a[12][12], flag = 1;
bool vis[12][12];
int n, k;
void dfs(int x, int y) {if (flag == 0) {return;}if (x == n && y == n && ans.size() == n * n - 1) {flag = 0;for (int i = 0; i < ans.size(); i++) {cout << ans[i];}return;}if (x == 0 || y == 0 || x > n || y > n) {return;}for (int i = 0; i < 8; i++){int gox = x + f[i][0];int goy = y + f[i][1];int t = (x - 1) * n + y, to = (gox - 1) * n + goy;pair<int, int> road({ t,to });if (vis[gox][goy] == false && (a[x][y] + 1) % k == a[gox][goy] && se.find(road) == se.end()) {vis[gox][goy] = true;ans.push_back(i);if (i == 1) {se.insert({ t + 1,t - n });se.insert({ t - n,t + 1 });}else if (i == 3) {se.insert({ t + 1,t + n });se.insert({ t + n,t + 1 });}else if (i == 5) {se.insert({ t - 1 ,t + n });se.insert({ t + n,t - 1 });}else if (i == 7) {se.insert({ t - 1,t - n });se.insert({ t - n,t - 1 });}dfs(gox, goy);if (i == 1) {se.erase({ t + 1,t - n });se.erase({ t - n,t + 1 });}else if (i == 3) {se.erase({ t + 1,t + n });se.erase({ t + n,t + 1 });}else if (i == 5) {se.erase({ t - 1 ,t + n });se.erase({ t + n,t - 1 });}else if (i == 7) {se.erase({ t - 1,t - n });se.erase({ t - n,t - 1 });}vis[gox][goy] = false;ans.pop_back();}}return;
}
int main()
{cin >> n >> k;vis[1][1] = true;for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {cin >> a[i][j];}}dfs(1, 1);if (flag) {cout << -1;}return 0;
}

我的acmer学长告诉我这样写常数太大了,容易炸,但愿还能混过前80%。。但是dotcpp上的民间数据倒是确确实实ac过去了,又是听天由命的一集,提一嘴,路径不让交叉的存储方法我看有大佬写的四维数组来标记,也就是记录起点(x0,y0)以及终点(x1,y1) 我更倾向于用(x-1) * n + y把他们弄成编号 ,虽然当时没想到数组去记录就好(会比set的插入删除操作更快,可能当时脑抽了吧,临场的时候就是想到啥直接用了,没有啥时间去做更多的考虑)


第七题 

对于任意一个大于等于2的数来说,开根号并向下取整肯定是优于(或等于)减半的,所以我们利用优先队列(堆)每次对最大数进行开根号操作(P次以后变成减半操作),然后弹出并把操作后得到的新数放回去就行了,也就是堆+贪心,但有大佬把出题人hack了

恕我太菜没想到这种数据的解决办法,而且赛场上这个题我压根就没写。。。(调暴搜花了1.5h给自己整累了,觉得反正后面更难懒得写了)

附代码(非本人手写)

#include<iostream>
#include<queue>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
int n,P,Q;
int a[100010];int main()
{priority_queue<int> heap;scanf("%d%d%d",&n,&P,&Q);for(int i=1;i<=n;i++) scanf("%d",&a[i]),heap.push(a[i]);while(P||Q){auto x=heap.top();heap.pop();if(P&&Q){int yl=sqrt(x);int y2=x/2;if(y2<=yl){Q--;heap.push(y2);}else{P--;heap.push(yl);}}else if(P){int yl=sqrt(x);P--;heap.push(yl);}else{int y2=x/2;Q--;heap.push(y2);}}ll res=0;while(!heap.empty()){int x=heap.top();heap.pop();res+=x;}printf("%lld\n",res);return 0;
}

第八题 

没什么好解释的,纯粹的不会,当时感觉这个题前缀和应该是有用的,但是就是一点都不想写了,就是累了摆了菜了qwq呜呜呜呜。。。。


吐槽

感觉总体上比去年是更简单了,去年最后那俩lca我当时大一是真一点都看不懂,emmmm,今年好像真的没有dp,难道dp杯知道自己黑称要改过自新?

求求今年让孩子混个省一吧(哭哭哭哭qaq qaq)

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

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

相关文章

python实现简单的车道线检测

描述 python实现简单的车道线检测&#xff0c;本文章将介绍两种简单的方法 颜色阈值区域掩模canny边缘检测霍夫变换 这两种方法都能实现简单的车道线检测demo&#xff0c;注意仅仅是demo 下面的图片是用到的测试图片 方法1&#xff1a;颜色阈值&#xff08;Color Selection…

资深亚马逊运营实战技巧:跨境电商6大选品法

1、工具选品法 比如店雷达&#xff0c; 通过大数据分析工具选出来利基产品或者通过工具选出来利基的市场&#xff0c;然后再通过分析市场来得到产品。 以女装为例&#xff0c;通过大数据分析&#xff0c;全方位对市场需求、款式、质量等进行多维度判断&#xff0c;其中SKU销量…

Unity Android 2021 Release-Notes

&#x1f308;Unity Android 2021 Release-Notes 版本更新内容2021.3.34Android: Google play.core package is replaced with separate plugins including play.asset-delivery 2.1.0 to solve PAD related compatibility problem with Android 14.(UUM-54157)2021.3.34Androi…

改进 Elastic Agent 和 Beats 中的事件队列

作者&#xff1a;Fae Charlton, Alexandros Sapranidis 内部改进如何降低 Elastic 8.13 中的内存使用。 在 8.12 版本中&#xff0c;我们引入了性能预设 —— 一种更简单的方法&#xff0c;用于调整 Elastic Agent 和 Beats 以适应各种场景。这提高了常见环境的性能&#xff0…

K8S节点kubectl命令报错x509: certificate signed by unknown authority

K8S节点上执行kubectl get node命令报错证书问题&#xff0c;查看kubelet日志如下 [localhost10 ~]$ journalctl -xeu kubelet --since "2024-04-09" --no-pager 4月 09 00:06:22 10.10.44.23-v7-prod-cams-08 kubelet[2142]: I0409 00:06:22.150535 2142 csi_pl…

Gson

1.简介 Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象&#xff08;反序列化&#xff09;&#xff0c;或者反过来&#xff08;序列化&#xff09;。 在bulid.gradle中添加依赖 implementation com.goo…

LinkedList用法详解(Java)

LinkedList LinkedList 是 Java 中的一个常用类&#xff0c;它实现了 List 接口&#xff0c;采用双向链表数据结构。 1. 创建 LinkedList 对象 import java.util.LinkedList;LinkedList<String> linkedList new LinkedList<>();2. 添加元素 linkedList.add(&q…

单调栈和单调队列所学的一些问题

单调栈和单调队列所学的一些问题 单调栈 单调栈中的元素要求从栈底到栈顶单调递增 遍历数组&#xff0c;如果元素入栈后符合单调要求则顺利入栈不符合要求则弹出栈顶元素&#xff0c;元素出栈时得出结果 右侧结果:待入栈元素 左侧结果:出栈后的栈顶元素 单调栈主要用来求每一…

OpenHarmony实战开发-如何使用Web预渲染实现功能介绍。

介绍 为了便于大家在使用本案例集时能够更详细的了解各个案例&#xff0c;本案例基于Web预渲染实现了案例介绍功能&#xff0c;即应用右下角的问号icon。 效果图预览 使用说明 因为直接加载的线上README&#xff0c;因此本功能需联网使用点击icon&#xff0c;即会弹出对应案…

爬虫的目的是做什么

通过网站域名获取HTML数据解析数据&#xff0c;获取想要的信息存储爬取的信息如果有必要&#xff0c;移动到另一个网页重复过程 这本书上的代码的网址是 &#xff1a; GitHub - REMitchell/python-scraping: Code samples from the book Web Scraping with Python http://shop.…

.NET使用Refit

学习笔记&#xff1a; Refit 是一个 .NET Standard 库,它可以自动生成用于调用 REST API 的强类型客户端。根据 REST API 的定义,自动生成用于调用 API 的客户端类和方法&#xff0c;支持 GET、POST、PUT、DELETE 等常见的 HTTP 方法&#xff0c;且自动处理 HTTP 请求和响应,包…

风力发电场集中监控系统解决方案

风力发电场集中监控系统解决方案 作为清洁能源之一&#xff0c;风力发电场近几年装机容量快速增长。8月17日&#xff0c;国家能源局发布1-7月份全国电力工业统计数据。截至7月底&#xff0c;全国累计发电装机容量约27.4亿千瓦&#xff0c;同比增长11.5%。其中&#xff0c;太阳能…

火绒安全的用法

火绒安全软件是一款综合性的电脑安全防护工具&#xff0c;提供了病毒查杀、系统防护、网络安全等多种功能&#xff0c;以帮助用户保护电脑免受恶意软件和网络威胁的侵害。以下是火绒安全软件的一些主要用法&#xff1a; 病毒查杀&#xff1a;火绒安全软件提供全盘查杀、快速查杀…

[STM32+HAL]DengFOC移植之闭环位置控制

一、源码来源 DengFOC官方文档 二、HAL库配置 1、开启硬件IIC低速模式 低速更稳定 2、PWM波开启 三、keil填写代码 1、AS5600读取编码器数值 #include "AS5600.h" #include "math.h"float angle_prev0; int full_rotations0; // full rotation trac…

hive窗口函数数据范围

window的内包括&#xff1a; (ROWS | RANGE) BETWEEN (UNBOUNDED | [num]) PRECEDING AND ([num] PRECEDING | CURRENT ROW | (UNBOUNDED | [num]) FOLLOWING) (ROWS | RANGE) BETWEEN CURRENT ROW AND (CURRENT ROW | (UNBOUNDED | [num]) FOLLOWING) (ROWS | RANGE) BETWEEN…

前端面试题(小整理)

vue中的生命周期钩子有哪些 beforeCreate&#xff1a; 在实例初始化之后&#xff0c;数据观测 (data observer) 和事件配置 (event/watcher setup) 之前被调用。 在此阶段&#xff0c;实例的属性和方法还未初始化。 created&#xff1a; 在实例创建完成后被立即调用。 可以访问…

文心一言VSchatGPT4

文心一言和GPT-4各有优势&#xff0c;具体表现在不同的测试场景下。 在某些测试场景中心一言的表现优于GPT-4&#xff0c;例如在故事的完整度和情节吸引力方面&#xff0c;文心一言表现得更加符合指令&#xff0c;情节更吸引人。这可能得益于其模型在训练时对中文语境的深入理…

选择电源自动化测试系统,要考虑哪些因素?

随着科技的发展以及市场需求的变化&#xff0c;手动测试以及传统自动化测试不足日益明显&#xff0c;已无法满足当前的电源测试需求&#xff0c;因此&#xff0c;选择全新的自动化测试系统成为必然趋势。那么&#xff0c;要如何选择可靠、高效的电源自动化测试系统呢&#xff1…

计算机网络——网络地址转换(NAT)技术

目录 前言 前篇 引言 SNAT&#xff08;Source Network Address Translation&#xff09;源网络地址转换 SNAT流程 确定性标记 DNAT&#xff08;Destination Network Address Translation&#xff0c;目标网络地址转换&#xff09; NAT技术重要性 前言 本博客是博主用于…

15 Python进阶: random和pyecharts

Python random 模块主要用于生成随机数。 random 模块实现了各种分布的伪随机数生成器。 要使用 random 函数必须先导入&#xff1a; import randompython random 模块的一般用法 Python中的random模块提供了生成伪随机数的功能&#xff0c;可以用于模拟、游戏开发、密码学…