2023蓝桥杯大学A组C++决赛游记+个人题解
Day0
发烧了一晚上没睡着,感觉鼻子被打火机烧烤一样难受,心情烦躁
早上6点起来吃了个早饭,思考能力完全丧失了,开始看此花亭奇谭
看了六集,准备复习数据结构考试,然后秒睡
一睁眼就是下午2点了
挂了个毛概课串讲,点了个外卖,吃完又睡着了
醒来就晚上8点了
然后又点了个外卖,复习了三章数据结构
就凌晨2点了,睡觉
Day1
7:40醒,被催着上了车,精神恍惚
然后开始考试
第一题
第一题就被难到了
分割圆形,以为是卡特兰数,但又觉得不一样
不给样例,题意也不是很清楚啊。。。
随便推了推
首先,连接相邻两个点的边(外圈)肯定得单独拿出来考虑,也就是2^n种外圈情况
然后设f[n]表示n边形内部划线不相交的方案数
简单推推得到f[n]=2*f[n-1]+Σf[i+1]*f[n-i+1]
f[3]=1;f[4]=3;.........
也不知道对不对,反正这么写了
最后好像是1392(可能是错的)
第二题
求2^(3^(4^(……^2023)))%2023
扩展欧拉定理
没什么好说的,背不到公式了
(翻了翻以前的博客)
emm……犯了一个扩展欧拉定理的典型错误
没加phi(p)
所以答案好像是869?
后面补的代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int gcd(int x,int y){return !y?x:gcd(y,x%y);}
int phi(int n)
{int sum=0;for(int i=1;i<n;i++)if(gcd(i,n)==1)sum++;return sum;
}
int ksm(int x,int y,int m)
{int ret=1;while(y){if(y&1)ret=1ll*ret*x%m;x=1ll*x*x%m;y>>=1;}return ret;
}
int minksm(int x,int y,int m)
{int ret=1;while(y){if(y&1)ret=min(1ll*ret*x,1ll*m);x=min(1ll*x*x,1ll*m);y>>=1;}return ret;
}
const int mod=2023;
pair<int,bool> f(int n,int m)
{if(m==1)return pair(1,1);pair<int,int> p=f(n+1,phi(m));int b=p.first;if(p.second) b+=phi(m);printf("%d^%d\n",n,b);if(minksm(n,b,m)==m)return pair(ksm(n,b,m),1);return pair(ksm(n,b,m),0);
}
int main()
{printf("%d",f(2,2023).first);
}
(所以搞了40分钟填空题是一分没得是吧)
第三题
把长方形分割成小正方形,让小正方形的数量最多
寻找大于2的最小公因数(没错是最小)
然后直接除一除就结束了
第四题
给出L,R
求x+y=z算式的数目(L<=x,y,z<=R)
数学题,稍微推一推就好
这题极度阴间,小心爆你的longlong(针对某些特定的写法)
第五题
第K小的和
给两个数组A,B。
从A、B中各选一个数加起来,组成C数组,求C数组中第K小的数。
二分答案+two-pointers,注意边界条件的验证
第六题
相连的边
给出一棵带权树,选择相连的三条边,让他们的边权和最大。
首先这三条边只可能是一条链,或者是菊花图
菊花图直接对每个点的相连的边排序
把树定根后,链的情况分两种,一种是直链,一种是有LCA的链
直链的情况直接枚举每个点,向上走三步统计边权
有LCA的情况,其实是两种直链的情况加起来,一边直链长度是2,另一边是1
枚举长度为2的直链,即枚举每个点向上走两步,然后在爷爷节点选择除去走上来的边的最大邻接边即可
注意细节处理。
第七题
01游戏
题目保证有解
直接爆搜
剪枝很多,横竖相连三个不能相同,每行的01个数不超过一半,算完每行每列用二进制val值去重
从11点10写到11点40
最后时间10*10的全下划线不到0.5s
第八题
求一个字符串中长度为i的本质不同的子串的个数(i=1~n)
应该是SAM板题,可惜我背不到了,老了啊┭┮﹏┭┮
写了个双哈希n^2logn,能过4000都顶天了
第九题
求一棵树中距离为i的简单路径条数(i=L~R)
点分治板题,可惜我背不到了,老了老了
暴力n^2走人,居然还有40%
md,lqb出题这么这个样子???尽是出板题是吧???欺负我退役多年的老同志
第十题
本来只剩20分钟了,想着暴力也不是很好写,于是想了想正解,发现正解不难
状压DP,SPFA型转移
f[u][S][hp]表示当前在点u,存在怪兽的点的状态为S,当前血量为hp
很显然
(u,v)存在时:
if(S&(1<<v))
f[v][S-(1<<v)][hp-cal(S,v)]=min(f[u][S][hp]+w(u,v))
else
f[v][S][hp]=min(f[u][S][hp]+w(u,v))
然后就利用SPFA转移
最后答案应该是max(f[n-1][……][1~HP])
最后没写完,哪怕前面填空题不做也好啊,最后留个10~20分钟就搞定了,太菜了
总结
总之就是非常菜,简单题背不到公式,板题背不到板子,题目都写不完,太菜了。
相关文章:

2023蓝桥杯大学A组C++决赛游记+个人题解
Day0 发烧了一晚上没睡着,感觉鼻子被打火机烧烤一样难受,心情烦躁 早上6点起来吃了个早饭,思考能力完全丧失了,开始看此花亭奇谭 看了六集,准备复习数据结构考试,然后秒睡 一睁眼就是下午2点了 挂了个…...

wkhtmltopdf踩坑记录
1. 不支持writing-mode。 需求是文字纵向排列,内容从左到右,本来用的是writing-mode: tb-rl;,插件转pdf后发现失效。 解决方法: 让每一列文字单独用一个div容器包裹,对它的宽度进行限制,控制每一行只能出现…...
贪心算法part2 | ● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
文章目录 122.买卖股票的最佳时机II思路思路代码官方题解困难 55. 跳跃游戏思路思路代码官方题解代码困难 45.跳跃游戏II思路思路代码困难 今日收获 122.买卖股票的最佳时机II 122.买卖股票的最佳时机II 思路 局部最优:将当天价格和前一天比较,价格涨…...

[C++]异常笔记
我不怕练过一万种腿法的对手,就怕将一种腿法 练一万次的对手。 什么是C的异常 在C中,异常处理通常使用try-catch块来实现。try块用于包含可能会抛出异常的代码,而catch块用于捕获并处理异常。当异常被抛出时,程序会跳过try块中未执行…...

浅谈一级机电管道设计中的压力与介质温度
管道设计是工程设计中的一个非常重要的部分,管道的设计需要考虑到许多因素,其中就包括管道设计压力分类和介质温度分类。这两个因素是在设计管道时必须非常严格考虑的, 首先是管道设计压力分类。在管道设计中,根据工作要求和要传输…...
Docker网络模型(八)使用 macvlan 网络
使用 macvlan 网络 一些应用程序,特别是传统的应用程序或监控网络流量的应用程序,期望直接连接到物理网络。在这种情况下,你可以使用 macvlan 网络驱动为每个容器的虚拟网络接口分配一个MAC地址,使其看起来像一个直接连接到物理网…...

控制视图内容的位置
文本域中的提示内容在默认情况下是垂直居中的,要改变文本在文本域中的位置,可以使用android:gravity来实现。 利用android:gravity可以指定如何在视图中放置视图内容,例如,如何在文本域中放置文本。 如果希望视图文本显示在上方&a…...

【分布式系统与一致性协议】
分布式系统与一致性协议 CAP原理APCPCA总结BASE理论 一致性拜占庭将军问题 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 分布式系统的设计目标一般包含如下: 可用性:可用性是分…...
音视频领域的未来发展方向展望
文章目录 音视频领域的未来发展方向全景音视频技术虚拟现实和增强现实的区别 人工智能技术可视化智能分析智能语音交互图像识别和视频分析技术 语音处理智能推荐技术远程实时通信 流媒体技术未来方向 音视频领域的未来发展方向 全景音视频技术:全景音视频技术是近年…...

时间同步/集群时间同步/在线/离线
目录 一、能够连接外网 二、集群不能连接外网--同步其它服务器时间 一、能够连接外网 1.介绍ntp时间协议 NTP(Network Time Protocol)网络时间协议,是用来使计算机时间同步的一种协议,它可以使计算机对其服务器或时钟源做同步…...

基于BP神经网络对MNIST数据集检测识别(numpy版本)
基于BP神经网络对MNIST数据集检测识别 1.作者介绍2.BP神经网络介绍2.1 BP神经网络 3.BP神经网络对MNIST数据集检测实验3.1 读取数据集3.2 前向传播3.3 损失函数3.4 构建神经网络3.5 训练3.6 模型推理 4.完整代码 1.作者…...

HTML5-创建HTML文档
HTML5中的一个主要变化是:将元素的语义与元素对其内容呈现结果的影响分开。从原理上讲这合乎情理。HTML元素负责文档内容的结构和含义,内容的呈现则由应用于元素上的CSS样式控制。下面介绍最基础的HTML元素:文档元素和元数据元素。 一、构建…...
Vue中Axios的封装和API接口的管理
一、axios的封装 在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js中。他有很多优秀的特性,例如拦截请求和响应、取消请求、转换json、客户端防御XSR…...
MLIR面试题
1、请简要解释MLIR的概念和用途,并说明MLIR在编译器领域中的重要性。 MLIR(Multi-Level Intermediate Representation)是一种多级中间表示语言,提供灵活、可扩展和可优化的编译器基础设施。MLIR的主要目标是为不同的编程语言、领域专用语言(DSL)和编译器…...

***杨辉三角_yyds_LeetCode_python***
1.题目描述: 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows …...

Mac使用DBeaver连接达梦数据库
Mac使用DBeaver连接达梦数据库 下载达梦驱动包 达梦数据库 在下载页面随便选择一个系统并下载下来。 下载下来的是zip的压缩包解压出来就是一个ISO文件,然后我们打开ISO文件进入目录:/dameng/source/drivers/jdbc 进入目录后找到这几个驱动包&#x…...

spring.expression 随笔0 概述
0. 我只是个普通码农,不值得挽留 Spring SpEL表达式的使用 常见的应用场景:分布式锁的切面借助SpEL来构建key 比较另类的的应用场景:动态校验 个人感觉可以用作控制程序的走向,除此之外,spring的一些模块的自动配置类,也会在Cond…...

从Cookie到Session: Servlet API中的会话管理详解
文章目录 一. Cookie与Session1. Cookie与Session2. Servlet会话管理操作 二. 登录逻辑的实现 一. Cookie与Session 1. Cookie与Session 首先, 在学习过 HTTP 协议的基础上, 我们需要知道 Cookie 是 HTTP 请求报头中的一个关键字段, 本质上是浏览器在本地存储数据的一种机制,…...

docker数据管理与网络通信
一、管理docker容器中数据 管理Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器( DataVolumes Containers) 。 1、 数据卷 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻…...

怎么查询电脑的登录记录及密码更改情况?
源头是办公室公用的电脑莫名其妙打不开了,问别人也都不知道密码是多少 因为本来就没设密码啊!(躺倒) 甚至已经想好了如果是50万想攻破电脑,被po抓住要怎么花这笔钱了 是我想太多 当然最后也没解决,莫名…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...