2019第十届蓝桥杯C/C++B组省赛

本文详细介绍了2019年蓝桥杯C/C++组省赛的十道题目,包括组队问题、年号字串转换、数列求值、数的分解、迷宫路径、特别数的和、完全二叉树权值计算、等差数列求解、后缀表达式计算以及灵能传输问题的解题思路和答案。这些问题涉及到了回溯、进制转换、斐波那契数列、深度优先搜索等多种算法,是对算法和逻辑思维的综合考察。
摘要由CSDN通过智能技术生成

目录

 

第一题 :组队

第二题 年号字串

第三题 数列求值

第四题 数的分解

第五题 迷宫

第六题 特别数的和

第七题 完全二叉树的权值

第八题 等差数列

第九题 后缀表达式

第十题 灵能传输


第一题 :组队

问题描述:

作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容。 每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大可能是多少?

 

问题分析:

没什么好说的, 直接回溯暴力, 就是复制的时候会多一个序号, 读的时候多读一个扔掉就行了。

#include <iostream>

using namespace std;

int arr[20][5];
int used[20];

int ans, cur;

void dfs(int x)
{
	if(x == 0)
	{
		ans = max(ans, cur);
		return ;
	}

	for(int i=0; i<20; ++i)
		if(!used[i])
		{
			used[i] = 1;
			cur += arr[i][x-1];
			dfs(x-1);
			cur -= arr[i][x-1];
			used[i] = 0;
		}
}


int main()
{
	int a;
	for(int i=0; i<20; ++i)
	{
		cin >> a;
		for(int j=0; j<5; ++j)
			cin >> arr[i][j];
	}

	dfs(5);

	cout << ans << endl;

	return 0;
}

 

答案是: 490

 

 

第二题 年号字串

问题描述:

小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对 应 28,AZ 对应 52,LQ 对应 329。

请问 2019 对应的字符串是什么?

 

题目分析:

一开始以为是进制转换, 转出来之后往回算了算结果不对, 一看没有0, 所以再想太麻烦, 还是excel大法好, 因为excel的列号就是这样的....

选中第一行, 直接填充到2019即可。

 

注意不要看错了, 这个Q不明显, 别看成O了,

答案是: BYQ

 

第三题 数列求值

问题描述:

给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求 第 20190324 项的最后 4 位数字。

【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写 多余的内容将无法得分。

问题分析:

其实就是个斐波那契数列, 只是变成了三个数的和, 一样求就行了, 注意不要越界, 所以每次要取余

#include <iostream>
​
using namespace std;
​
int main()
{
    int ans = 0;
    int a = 1, b = 1, c = 1;
    for(int i=4; i <= 20190324; ++i)
    {
        ans = (a + b + c) % 100000;
        a = b;
        b = c;
        c = ans;
    }
    cout << ans % 10000;
    return 0;
}
​

答案是: 4659

 

第四题 数的分解

问题描述

把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包 含数字 2 和 4,一共有多少种不同的分解方法?

注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。

【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

 

题目分析:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值