2025蓝桥杯省赛C/C++研究生组游记

news2025/5/18 11:18:37

前言

至少半年没写算法题了,手生了不少,由于python写太多导致行末老是忘记打分号,printf老是忘记写f,for和if的括号也老是忘写,差点连&&和||都忘记了。

题目都是回忆版本,可能有不准确的地方。

代码如果有机会能拿到的话,会补充的。

A

统计1~202504之间每个数字各数位上的数之和被5整除的个数。

直接循环统计就完事了。

B

统计所有IPv6地址的最短形式的长度之和。

缩写规则为,每个四位十六进制数的前导零可以省略,除此之外可以省掉一串连续的0000。

注意,当省略的0000序列在序列两端时,会变成::

例如0234:0000:0000:0000:000f:1f1f:00ab:0000,可以缩写为

234::f:1f1f:ab:0,长度就是3+2+1+1+4+1+2+1+1=16

但0000:0000:0000:000f:1f1f:00ab:0234:0000,应该缩写为

::f:1f1f:ab:234:0,长度就是2+1+1+4+1+2+1+3+1+1=17

题解

这题很有意思,陷阱很多。(复盘的时候发现自己错了)

首先显然一个非0的四位十六进制数去除前导零的长度总和为sumlen=(15*1+15*16*2+15*16*16*3+15*16*16*16*4)

一个非0的四位十六进制数有sumcnt=(15+15*16+15*16*16+15*16*16*16)种

两个四位十六进制数长度总和需要求卷积,而不是直接相加或者相乘。

当然也可以一个一个数计算贡献,也就是sumlen*[sumcnt^(n-1)]*n种(可证明和卷积是等价的)

然后就是最短形式,如果有多串长度相同的连续的0地址,应该优先省去中间的0串。

枚举最长的0串区间求解的话,会有很多问题,例如去重、合法串的限制。

所以枚举八个四位十六进制数分别为0的所有组合,时间复杂度为2^8

然后根据枚举的情况来求应该省去的0串的位置,计算所有0地址提供冒号和0的长度。

最后计算非0地址贡献的长度总和sum,然后用sumcnt^(非0地址个数)*(所有0地址提供的冒号和0的长度)计算所有0地址的贡献,最后加起来就可以了。

写完之后就9:40多了。

C

一个序列ai长度为n,m次操作,一次操作把序列中每个数变成ai*bitcount(ai),求m次操作后的序列。

n<=1000,m<=5,ai<=1000。

直接模拟即可。

D

最大数字

输入n,将1~n的每个数字转换为二进制,拼接成一个长二进制串,再转换回十进制,要求最终的十进制数最大。

n<=10000

题解

把每个数字的二进制放入结构体,重载小于符号为

a拼接b > b拼接a

(可恶,我连这个都忘记了,直接按字典序排了,太久不做题导致的)

然后排完序之后用原数据值进行高精度计算(用二进制串直接计算会超时),最后用longlong压8位,勉强能在1秒内出结果。

(我这个SB题还写了一个小时,我真是服了)

E

冷热数据队列

q1队列长度为n1,q2队列长度为n2,访问一个数据x

四条规则

若x不在q1、q2中,则将x加入q2头部

若x在q2或q2中,则将x提到q1头部

若q1或q2超过各自的长度限制时,剔除尾端的数据

若q1超过限制但q2还有空位时,则将q1尾部数据放到q2头部。

题解(非正解)

考场上直接用deque模拟了,两个队列各自维护一个vis数组,快速判断哪些数据在队列中

但第二条规则需要把deque里面的倒出来在压回去

不过根据数据范围来看,应该直接暴力就有80分。

正解?我也不知道

F

01串(又是01串)

把0、1、2、3、……所有数的二进制表示排成一排,求前x个数有多少个1

序列的大致形式就是0;1;1、0;1、1;1、0、0;1、0、1;……

x<=10^18

题解

倍增查询恰好超过x时,一个数的二进制有多少位,记n为该值减一

设f[i]表示二进制位数小于等于i的所有数的累积,f[i]=f[i-1]*2+2^(i-1),

可以先将f[n]添加入答案,减掉x用掉的位数。

接下来就确定了x所在的数的二进制位数。

用x的剩余位数除以n,对得到的二进制进行分治:(类似二分查找)

只需要在选择右子树的时候统计答案,并只需要添加左子树的累和即可。

最后算完之后,我们已经确定了x最终位于的十进制数,如果x还有剩余,则可以从高位到低位以此枚举最终的十进制数的二进制,加入答案即可。

G

甘蔗

给出n个甘蔗高度ai,m个限制bj。

当每个甘蔗与相邻甘蔗高度差都在集合b中,则序列合法。

求最少砍多少个甘蔗才能让序列合法。

题解(非正解)

考场上直接暴力dp了

f[i][j]表示第i棵甘蔗高度为j时,前i棵甘蔗的序列合法的最少代价。

当j==a[i]时,则f[i][j]=min(f[i-1][j±b[k]])(1<=k<=m,0<=j±b[k]<=a[i-1])

当j!=a[i]时,在上式子后+1即可。

O(n^2*m)的复杂度,没法过完所有数据,可能有优化之类的吧。

H

n个厂房,所有厂房都在x正方向,坐标为ci,原料单价为ai,库存为bi,原料需求为m个单位,每走一个单位的代价为o。

求满足原料需求的最少代价。

n<=100000,保证ci递增

题解(个人猜测)

前面耽误时间太多了,再加上手比较生了,写到最后一题只剩20分钟了,最后直接没交。

模拟费用流贪心。

维护两个集合S(空流边)、T(已流边),按照原料单价排序

依次加入工厂,加入到S集合中,按照费用排序。

若当前m个单位有剩余,则在S集合中选择费用最低的工厂<cost,cap>,流过min(m,cap),总代价ans+=cost*min(m,cap)

在T集合中添加工厂<-cost,min(m,cap)>,或者在已有的-cost元素上添加min(m,cap)的容量

若cap已空,则在S集合中删除该工厂。

完成上述更新之后,还需要维护S、T的流量平衡。

若当前S集合首元素cost与T集合首元素cost之和为负数,则说明代价还可以减少(也就是更换工厂后会更优),则需要将min(cap_S_begin,cap_T_begin)的货物从T换到S集合中,与此同时还需要更新S和T集合。

完成所有更新之后,取所有(总代价+ci)的最小值就是最终的代价。

后记

感觉考得好差,太多失误了,而且最近赶毕设鸭梨山大,生活状态也不好,希望一切能好起来吧。

这次CDF三道二进制,ABCDF都是数位相关问题,题目比重真的很奇怪。

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

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

相关文章

重读《人件》Peopleware -(6)Ⅰ管理人力资源Ⅴ-帕金森定律重探 Parkinson’s Law Revisited

1954年&#xff0c;英国作家C. Northcote Parkinson引入了一个概念&#xff1a;工作会膨胀以填满分配给它的时间&#xff0c;这个概念现在被熟知为帕金森定律。如果你不知道很少有管理者接受过任何管理培训的话&#xff0c;你可能会以为他们都参加过一个关于帕金森定律及其影响…

Linux-内核驱动-led

登记设备号&#xff08;后面可以动态分配&#xff09; 自己定义内核函数 登记设备名字和功能 exit和init在内核启动自动执行 这样定义直接操作物理地址 ioctl 定义了设备文件的各种操作&#xff0c;并准备将其注册到内核中。 代码中声明了一个cdev结构体变量cdev&#xff0c;这…

记录一次因ASM磁盘组空间不足,导致MAP进程无法启动

生产中 ADG 库出现告警,检查发现 map 进程异常: 检查 alter 日志,出现: ORA-19504:failed to create file "DATAC1/casarch/2_162186_1067953047.arc" ORA-17502:ksfdcre:4 Failed to create file ... ORA-15041:diskgroup "DATAC1" space exhausted OR…

可能存在特殊情况,比如控制台显示有延迟、缓冲问题等影响了显示顺序。

从控制台输出看&#xff0c;正常逻辑应是先执行 System.out.println(" 未处理异常演示 "); 输出对应文本&#xff0c;再因 arr 为 null 访问 length 触发 NullPointerException 输出异常信息。可能存在特殊情况&#xff0c;比如控制台显示有延迟、缓冲问题等影响…

c++中继承方面的知识点

继承的概念及定义 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保 持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象 程序设计的层次结…

PyTorch 学习笔记

环境&#xff1a;python3.8 PyTorch2.4.1cpu PyCharm 参考链接&#xff1a; 快速入门 — PyTorch 教程 2.6.0cu124 文档 PyTorch 文档 — PyTorch 2.4 文档 快速入门 导入库 import torch from torch import nn from torch.utils.data import DataLoader from torchvision …

Spring AI 结构化输出详解

一、Spring AI 结构化输出的定义与核心概念 Spring AI 提供了一种强大的功能&#xff0c;允许开发者将大型语言模型&#xff08;LLM&#xff09;的输出从字符串转换为结构化格式&#xff0c;如 JSON、XML 或 Java 对象。这种结构化输出能力对于依赖可靠解析输出值的下游应用程…

从零开始的C++编程 2(类和对象下)

目录 1.构造函数初始化列表 2.类型转换 3.static成员 4.友元 5.内部类 6.匿名对象 1.构造函数初始化列表 ①之前我们实现构造函数时&#xff0c;初始化成员变量主要使⽤函数体内赋值&#xff0c;构造函数初始化还有⼀种⽅式&#xff0c;就是初始化列表&#xff0c;初始化…

AI结合VBA提升EXCEL办公效率尝试

文章目录 前言一、开始VBA编程二、主要代码三、添加到所有EXCEL四、运行效果五、AI扩展 前言 EXCEL右击菜单添加一个选项&#xff0c;点击执行自己逻辑的功能。 然后让DeepSeek帮我把我的想法生成VBA代码 一、开始VBA编程 我的excel主菜单没有’开发工具‘ 选项&#xff0c;…

Python快速入门指南:从零开始掌握Python编程

文章目录 前言一、Python环境搭建&#x1f94f;1.1 安装Python1.2 验证安装1.3 选择开发工具 二、Python基础语法&#x1f4d6;2.1 第一个Python程序2.2 变量与数据类型2.3 基本运算 三、Python流程控制&#x1f308;3.1 条件语句3.2 循环结构 四、Python数据结构&#x1f38b;…

Java——数据类型与变量

文章目录 字面常量Java数据类型变量定义变量的方式整形变量长整型变量短整型变量字节型变量浮点型变量双精度浮点型单精度浮点型 字符型变量布尔型变量 类型转换自动类型转换&#xff08;隐式&#xff09;强制类型转换&#xff08;显式&#xff09; 类型提升byte与byte的运算 字…

9. C++STL详解vector的使用以及模拟实现

文章目录 一、vector的使用介绍1.1 vector的定义1.2 vector iterator 的使用1.3 vector 增删查改二、vector 迭代器失效问题会引起其底层空间改变的操作&#xff0c;都有可能是迭代器失效&#xff0c;比如&#xff1a;resize、reserve、insert、assign、push_back等。指定位置元…

C/C++调用Python程序代码实现混合编程笔记教程

0、引言 Python‌在基础开发、数据科学、人工智能、Web框架开发等领域具有广泛的支持工具和开发教程&#xff0c;极大的缩短了产品原型开发周期、降低了开发难度。 有许多的功能&#xff0c;通过C/C实现&#xff0c;非常的复杂并且不方便&#xff0c;但是Python可能就是几行代码…

LeetCode hot 100—子集

题目 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[1],[2…

Linux网络编程——数据链路层详解,以太网、MAC地址、MTU、ARP、DNS、NAT、代理服务器......

目录 一、前言 二、以太网 二、以太网帧格式 三、 MAC地址 四、MTU 1、数据链路层的数据分片 2、MTU对UDP协议的影响 3、MTU对TCP协议的影响 五、ARP协议 1、什么是ARP 2、ARP的作用 3、ARP协议的工作流程 4、ARP缓存表 5、ARP请求报文 6、中间人 六、DNS&…

基于springboot+vue的秦皇岛旅游景点管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.3.9 系统展示 用户登录 旅游路…

Linux网络编程——TCP通信的四次挥手

一、前言 上篇文章讲到了TCP通信建立连接的“三次握手”的一些细节&#xff0c;本文再对TCP通信断开连接的“四次挥手”的过程做一些分析了解。 二、TCP断开连接的“四次挥手” 我们知道TCP在建立连接的时需要“三次握手”&#xff0c;三次握手完后就可以进行通信了。而在通…

计算机视觉算法实现——SAM实例分割:原理、实现与应用全景

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​ ​​​​​​​​​ ​​ 1. 实例分割领域概述 实例分割(Instance Segmentation)是计算机视觉领域最具挑战性的任务之一&#xff0c…

基于SpringBoot的宠物健康咨询系统(源码+数据库+万字文档)

502基于SpringBoot的宠物健康咨询系统&#xff0c;系统包含三种角色&#xff1a;管理员、用户&#xff0c;顾问主要功能如下。 【用户功能】 1. 首页&#xff1a;查看系统主要信息和最新动态。 2. 公告&#xff1a;浏览系统发布的公告信息。 3. 顾问&#xff1a;浏览可提供咨询…

vue2 el-element中el-select选中值,数据已经改变但选择框中不显示值,需要其他输入框输入值才显示这个选择框才会显示刚才选中的值

项目场景&#xff1a; <el-table-column label"税率" prop"TaxRate" width"180" align"center" show-overflow-tooltip><template slot-scope"{row, $index}"><el-form-item :prop"InquiryItemList. …