第七届蓝桥杯决赛大学B组

蓝桥杯个人赛软件类历届真题及其解析 阅读详情

1. 结果填空 (满分15分)


一步之遥

从昏迷中醒来,小明发现自己被关在X星球的废矿车里。
矿车停在平直的废弃的轨道上。
他的面前是两个按钮,分别写着“F”和“B”。

小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。
按F,会前进97米。按B会后退127米。
透过昏暗的灯光,小明看到自己前方1米远正好有个监控探头。
他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。
或许,通过多次操作F和B可以办到。

矿车上的动力已经不太足,黄色的警示灯在默默闪烁...
每次进行 F 或 B 操作都会消耗一定的能量。
小明飞快地计算,至少要多少次操作,才能把矿车准确地停在前方1米远的地方。

请填写为了达成目标,最少需要操作的次数。

注意,需要提交的是一个整数,不要填写任何无关内容(比如:解释说明等)
 

 

 

2. 结果填空 (满分35分)


凑平方数

把0~9这10个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的。
比如:0, 36, 5948721

再比如:
1098524736
1, 25, 6390784
0, 4, 289, 15376
等等...

注意,0可以作为独立的数字,但不能作为多位数字的开始。
分组时,必须用完所有的数字,不能重复,不能遗漏。

如果不计较小组内数据的先后顺序,请问有多少种不同的分组方案?

注意:需要提交的是一个整数,不要填写多余内容。


 

 

 

3. 代码填空 (满分25分) 

 


棋子换位

有n个棋子A,n个棋子B,在棋盘上排成一行。
它们中间隔着一个空位,用“.”表示,比如:

AAA.BBB

现在需要所有的A棋子和B棋子交换位置。
移动棋子的规则是:
1. A棋子只能往右边移动,B棋子只能往左边移动。
2. 每个棋子可以移动到相邻的空位。
3. 每个棋子可以跳过相异的一个棋子落入空位(A跳过B或者B跳过A)。

AAA.BBB 可以走法:
移动A ==> AA.ABBB
移动B ==> AAAB.BB

跳走的例子:
AA.ABBB ==> AABA.BB

以下的程序完成了AB换位的功能,请仔细阅读分析源码,填写划线部分缺失的内容。

#include <stdio.h>
#include <string.h>

void move(char* data, int from, int to)
{
    data[to] = data[from];
    data[from] = '.';
}

int valid(char* data, int k)
{
    if(k<0 || k>=strlen(data)) return 0;
    return 1;
}
    
void f(char* data)
{
    int i;
    int tag;
    int dd = 0; // 移动方向
    
    while(1){
        tag = 0;
        for(i=0; i<strlen(data); i++){
            if(data[i]=='.') continue;
            if(data[i]=='A') dd = 1;
            if(data[i]=='B') dd = -1;
            
            if(valid(data, i+dd) && valid(data,i+dd+dd) 
            && data[i+dd]!=data[i] && data[i+dd+dd]=='.'){ 
            //如果能跳... 
                move(data, i, i+dd+dd);
                printf("%s\n", data);
                tag = 1;
                break;
            }
        }
        
        if(tag) continue;
        
        for(i=0; i<strlen(data); i++){
            if(data[i]=='.') continue;
            if(data[i]=='A') dd = 1;
            if(data[i]=='B') dd = -1;            
                 
            if(valid(data, i+dd) && data[i+dd]=='.'){ 
            // 如果能移动...
                if( ______________________ ) continue;  //填空位置 
                move(data, i, i+dd);
                printf("%s\n", data);
                tag = 1;
                break;
            }
        }
        
        if(tag==0) break;                    
    }
}
    
int main()
{
    char data[] = "AAA.BBB";    
    f(data);
    return 0;
}


注意:只提交划线部分缺少的代码,不要复制已有代码或填写任何多余内容。

 

 

 

4. 程序设计(满分47分)


机器人塔

X星球的机器人表演拉拉队有两种服装,A和B。
他们这次表演的是搭机器人塔。

类似:

     A
    B B
   A B A
  A A B B
 B B B A B
A B A B B A

队内的组塔规则是:
  
  A 只能站在 AA 或 BB 的肩上。
  B 只能站在 AB 或 BA 的肩上。

你的任务是帮助拉拉队计算一下,在给定A与B的人数时,可以组成多少种花样的塔。

输入一行两个整数 M 和 N,空格分开(0<M,N<500),分别表示A、B的人数,保证人数合理性。

要求输出一个整数,表示可以产生的花样种数。

例如:
用户输入:
1 2

程序应该输出:
3


再例如:
用户输入:
3 3

程序应该输出:
4

资源约定:
峰值内存消耗 < 256M
CPU消耗  < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

 

 

5. 程序设计(满分79分)


广场舞

LQ市的市民广场是一个多边形,广场上铺满了大理石的地板砖。

地板砖铺得方方正正,就像坐标轴纸一样。
以某四块砖相接的点为原点,地板砖的两条边为两个正方向,一块砖的边长为横纵坐标的单位长度,则所有横纵坐标都为整数的点都是四块砖的交点(如果在广场内)。

广场的砖单调无趣,却给跳广场舞的市民们提供了绝佳的参照物。每天傍晚,都会有大批市民前来跳舞。
舞者每次都会选一块完整的砖来跳舞,两个人不会选择同一块砖,如果一块砖在广场边上导致缺角或者边不完整,则没人会选这块砖。
(广场形状的例子参考【图1.png】)

现在,告诉你广场的形状,请帮LQ市的市长计算一下,同一时刻最多有多少市民可以在广场跳舞。

【输入格式】
输入的第一行包含一个整数n,表示广场是n边形的(因此有n个顶点)。
接下来n行,每行两个整数,依次表示n边形每个顶点的坐标(也就是说广场边缘拐弯的地方都在砖的顶角上。数据保证广场是一个简单多边形。

【输出格式】
输出一个整数,表示最多有多少市民可以在广场跳舞。

【样例输入】
5
3 3
6 4
4 1
1 -1
0 4

【样例输出】
7

【样例说明】
广场如图1.png所示,一共有7块完整的地板砖,因此最多能有7位市民一起跳舞。

【数据规模与约定】
对于30%的数据,n不超过100,横纵坐标的绝对值均不超过100。
对于50%的数据,n不超过1000,横纵坐标的绝对值均不超过1000。
对于100%的数据,n不超过1000,横纵坐标的绝对值均不超过100000000(一亿)。


资源约定:
峰值内存消耗 < 256M
CPU消耗  < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

 

 

 

6. 程序设计(满分99分)


生成树计数

给定一个 n*m 的格点图,包含 n 行 m 列共 n*m 个顶点,相邻的顶点之间有一条边。
【图1.png】给出了一个3*4的格点图的例子。


如果在图中删除部分顶点和其相邻的边,如上图删除第2行第3列和第3行第1列的顶点后,如【图2.png】所示。

图的生成树指包含图中的所有顶点和其中的一部分边,使得任意两个顶点之间都有由边构成的唯一路径。如果两个生成树包含有不同的边即被认为不同,则上图中共有31种不同的生成树,其中a边不选有10种,a边选有21种。
给出格点图中保留的顶点的信息,请计算该图一共有多少种不同的生成树。

【输入格式】
输入的第一行包含两个整数n, m,用空格分隔,表示格点图的行数和列数。
接下来n行,每行m个字母(中间没有分隔字符),每个字母必然是大写E或大写N,E表示对应的顶点存在,N表示对应的顶点不存在。保证存在至少一个顶点。

【输出格式】
输出一行,包含一个整数,表示生成树的个数。答案可能很大,你只需要计算答案除以1000000007的余数即可。

【样例输入】
3 4
EEEE
EENE
NEEE

【样例输出】
31

【数据规模与约定】
对于10%的数据,1<=n<=2。
对于30%的数据,1<=n<=3。
对于40%的数据,1<=n<=4。
对于50%的数据,1<=n<=5。
另有20%的数据,1<=n*m<=12。
另有10%的数据,1<=m<=15。
对于100%的数据,1<=n<=6,1<=m<=100000。

资源约定:
峰值内存消耗 < 256M
CPU消耗  < 4500ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

   
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第十一届蓝桥杯大赛软件类决赛(C/C++ 大学A组) 第十一届蓝桥杯大赛软件类决赛 C/C++ 大学 A 组 阅读详情

相关推荐

第十届蓝桥杯大赛软件赛决赛C/C++ 大学B组

第十届蓝桥杯大赛软件赛决赛C/C++ 大学B组前五题题解

枫飘长安的博客 1564

2022年第十三届蓝桥杯大赛软件类决赛C/C++/Java/Python真题

2022年第十三届蓝桥杯大赛软件类决赛C/C++/Java/Python真题

sumangguoguo的博客 2377

牛客月赛10-金币-(思维+dfs)

G 题意: 就是给你一个森林,然后对于每个树,每一个点都有一个金币,并且每一秒,每个金币都会往父亲节点走一步,如果某个点某个时间的金币如果是偶数就变成0,如果是奇数就变成1,问你最后根节点最多能捡到多少金币。 思考: 其实看到这题我就在想树形dp,但是仔细想想这怎么处理呢,对于子节点这没办法处理啊。其实你想想,这不是dp,为什么?因为每个点的降落都是固定的,你又不能操作他,你仅仅能做的只是算出来答案,也就是这个根节点的金币数量最终是唯一的。所以丢掉dp的思想,把他看作思维题就好了,对于每个节点到底会怎么样,

m0_52398496的博客 414

2021年 第12届 蓝桥杯 Java B组 决赛真题详解及小结【2021.06.05】

2021年 第12届 蓝桥杯 Java B组 决赛真题详解及小结【2021.06.05】

upward 4775

蓝桥杯 Java B组 省赛决赛模拟赛 详解及小结汇总+题目下载【2013年(第4届)~2021年(第12届)】

蓝桥杯 Java B组 省赛决赛模拟赛 详解及小结汇总+题目下载【2013年(第4届)~2021年(第12届)】

upward 5732

C++描述 国王给骑士发放金币 ||

C++描述 国王给骑士发放金币 ||

weixin_46803686的博客 5749

2015年 第06届 蓝桥杯 Java B组 决赛真题详解及小结

蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总【2013年(第4届)~2020年(第11届)】 第11届 蓝桥杯-第1、2次模拟(软件类)真题-(2020年3月、4月)-官方讲解视频 说明:大部分题解思路及程序代码 源自蓝桥杯 官网视频(Java B组历年真题解析)——郑未老师。 2013年 第04届 蓝桥杯 Java B组 省赛真题详解及小结 2014年 第05届 蓝桥杯 Java B组 省赛真题详解及小结 2015年 第06届 蓝桥杯 Java B组 省赛真题详解及小结 2016年...

upward 1215

有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币?

拿金币 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述   有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。 你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。 请问如何走才能拿到最多的金币。 输入格式:第一行输入一个正整数n。   以下n行描述该方格。金币数保证是不超过1000的正整数。 输出格式:最多能拿金币数量。 样例输入 3 1 3 3 2 2 2 3 1 2 样例输出 11 数据规模和约定   n<=10...

m0_58167559的博客 4043

第七届蓝桥杯大赛个人赛(软件类)决赛真题

第七届蓝桥杯大赛个人赛(软件类)决赛真题

蓝桥杯第七届决赛第一名例程

“电压、频率采集设备”设计任务书 功能简述 “电压、频率采集设备”能够实现测量信号频率和电压,修改、存储工作参数,记录、 查询事件等功能,系统由按键单元、ADC 采集单元、显示单元、数据存储单元组成,系统 框图如图 1 所示: 图 1. 系统框图 I2C 总线、DS1302 时钟芯片时序控制程序、CT107D 单片机考试平台电路原理图以及 本题所涉及到的芯片数据手册,可参考计算机上的电子文档。原理图文件、程序流程图及相 关工程文件请以考生号命名,并保存在计算机上的考生文件夹中(文件夹名为考生准考证号, 文件夹位于 Windows 桌面上)。

蓝桥杯【第13届国赛】Python B组 131.30分

每道题的分数都是在下面的链接测的,再按照蓝桥的分数 (可参考我的里的说明) 计算出这个分数。当初比赛的时候只有 32 分,拿了个国三,真的是菜死我了。

荷碧TongZJ 的水文 4003

第七届蓝桥杯省赛B组试题

第七届蓝桥杯省赛B组试题,想参加蓝桥杯的同学可以试试手

第七届蓝桥杯大赛个人赛决赛(C/C++大学B组)

第七届蓝桥杯大赛个人赛决赛(C/C++大学B组) 第一题 一步之遥(15分) 从昏迷中醒来,小明发现自己被关在X星球的废矿车里。 矿车停在平直的废弃的轨道上。 他的面前是两个按钮,分别写着“F”和“B”。 小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退。 按F,会前进97米。按B会后退127米。 透过昏暗的灯光,小明看到自己前方1米远正好有个监控探头。 他必须设法使得矿车正好停在摄像头的下方,才有机会争取同伴的援助。 或许,通过多次操作F和B可以办到。 矿车上的动力已经不太足,黄色的警示灯在默默闪

weixin_41929941的博客 824

2022年电赛F题23年电赛D题-信号调制度测量装置说明中提到带通采样定律。

另外,当对于一个频率很高的射频信号采样时,如果采样频率设的太低,对提高采样量化的信噪比是不利的。低通采样定理在《信号与系统》教材中进行了详细的讨论,但未对带通信号的采样定理进行描述,国内樊昌信和曹丽娜老师编写的《通信原理》第10章第2小节有所描述,但没有详细的公式推导,容易给初学者产生超过该最低采样频率即不会产生频谱混叠的假象。故采样频率没选好,就会使周期性频谱搬移过程中造成频谱混叠,既然频谱和原信号的频谱对不上了,故就无法无失真恢复原信号了,总之,频域波形不出现重叠是无失真传输的重要保障。

qq_64919823的博客 2183

Kindle电子书DRM破解全攻略:从下载到转换的完整流程(含最新DeDRM插件配置)

本文详细介绍了2025年最新Kindle电子书DRM移除的完整实战流程。针对亚马逊加密机制的升级,文章重点讲解了如何配置最新的DeDRM插件、从新版Kindle客户端提取密钥,并利用Calibre完成电子书的解密与格式转换,为个人备份提供了一套可行的解决方案。

weixin_29279153的博客 1735

重庆邮电大学计算机学院蓝桥杯,第七届蓝桥杯大赛个人赛(软件类)-重庆赛区获奖名单...

第七届蓝桥杯全国软件和信息技术专业人才大赛—个人赛省赛(软件类)重庆赛区获奖名单省份重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆重庆学校名称重庆科技学院重庆邮电大学重庆邮电大学重庆科技学院重庆科技学院重庆交通大学重庆交通大学重庆邮电大学重庆科技学院重庆邮电大学重庆科技学院重庆科技学院重庆邮电大学重庆邮电大学重庆...

weixin_39756540的博客 1356

cadence——MOS晶体管I-V特性曲线仿真

MOS晶体管I-V特性曲线仿真 目标:使用cadence绘制晶体管的I-V特性曲线(dc仿真) 流程: 新建原理图,将MOS管的栅极电压设为变量Vg,漏极电压设为变量Vd 打开ADEL,点击Variables——Copy From Cellview添加变量;并选择dc仿真,对Vd进行扫描 以Vg作为参变量进行仿真,点击Tools——Parametric Analysis进行设置 选择漏极电流作为输出,进行仿真即可得到I-V特性曲线 ...

skycmq的博客 1万+

第七届蓝桥杯决赛 棋子换位

棋子换位 有n个棋子A,n个棋子B,在棋盘上排成一行。 它们中间隔着一个空位,用“.”表示,比如: AAA.BBB 现在需要所有的A棋子和B棋子交换位置。 移动棋子的规则是: 1. A棋子只能往右边移动,B棋子只能往左边移动。 2. 每个棋子可以移动到相邻的空位。 3. 每个棋子可以跳过相异的一个棋子落入空位(A跳过B或者B跳过A)。 AAA.BB

qq2309505683的博客 759

销售预测的方法与模型(三)丨安全库存与再订货(补货)

较高的 Z 值对应较高的服务水平(例如,服务水平 99% 对应 Z 值 2.33),意味着企业希望更低的缺货风险,因此需要更高的安全库存。在再订货点的管理中,考虑到供应商交货的不确定性,通常需要结合安全库存,以防止在交货期间库存用尽。要对L开根号,根号L表示交货周期越长,企业需要的安全库存越多,因为在较长的供应期内,需求波动的累积效应更明显。举例:供应商的交期服从标准差为2件/天的正态分布,顾客需求为50件/天的正态分布,若要客户服务水平达到 90%,安全库存量应该是多少?下面介绍几种核心的模型与公式。

weixin_45675709的博客 1534

Python+Selenium实战:5分钟搞定快手评论区数据采集(附完整代码)

本文详细介绍了如何使用Python和Selenium快速采集快手评论区数据,提供完整的代码实现和优化方案。通过动态加载处理和智能等待策略,5分钟内即可构建高效的评论采集工具,适用于用户行为分析和内容挖掘等场景。

weixin_30415113的博客 344

2022 第十三届蓝桥杯大赛软件赛决赛, 国赛,C/C++ 大学B组题解

2022 第十三届蓝桥杯大赛软件赛决赛, 国赛,C/C++ 大学B组题解 文章目录 第1题 —— 2022 (5分) 第2题 —— 钟表 (5分) 第3题 —— 卡牌 (10分) 第4题 —— 最大数字 (10分) 第5题 —— 出差 (15分) 第6题 —— 费用报销 (15分) 第7题 —— 故障 (20分) 第8题 —— 机房 (20分) 第9题 —— 齿轮 (25分) 第10题 —— 搬砖 (25分)

小哈里的博客 2183

从零构建知识图谱:本体工程与知识建模实战指南

本文是一份从零构建知识图谱的实战指南,重点阐述了知识建模与本体工程的核心地位。文章详细介绍了如何使用Protégé工具进行本体设计,包括定义领域、复用现有本体、构建类层次与属性约束,并讲解了如何利用D2RQ工具将关系数据库数据转换为RDF三元组,最终通过Apache Jena Fuseki搭建SPARQL端点进行知识查询与推理,让知识图谱真正“活”起来。

weixin_29057695的博客 568

第七届蓝桥杯国赛C语言B组 凑平方数(DFS+全排列)

保证组合是从小到大排列的 防止重复 #include<bits/stdc++.h> #define ll long long using namespace std; int a[10]= {0,1,2,3,4,5,6,7,8,9}; ll ans; bool judge(ll n) { return sqrt(n)==(ll)(sqrt(n)); } //x记录上个数大小,i记录当前位数 void dfs(ll x,int i) { if(i==10) {

hy1255564202的博客 269

麒麟V10(arm)配置本地离线yum源

麒麟V10(arm)配置本地离线yum源

myfm2java的博客 7885

Python 爬虫实战:京东商品价格与评论数据爬取

本文介绍了使用Python爬取京东商品价格与评论数据的完整流程。主要内容包括: 环境准备:安装requests、BeautifulSoup、pandas等库,建议使用Python 3.8+虚拟环境。 目标分析: 商品列表页(HTML)包含名称、价格、SKU ID等数据 评论数据通过JSON API获取 反爬策略: 随机User-Agent 请求延迟2-5秒 设置必要Cookie 代码实现: 基础配置:设置输出目录、随机UA生成器 搜索列表页爬取:解析HTML获取商品基本信息 评论数据爬取:通过JSON AP

u014481728的博客 421
上一篇: 第八届蓝桥杯决赛大学B组
下一篇: 第六届蓝桥杯决赛大学A组
朱事顺利、
博客等级 码龄9年 25粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值