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

一、组队

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

这道题纯手工计算,花了大概5分钟 

结果:490

二、年号字串

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

 

Q = 17 * 1 Y = 26 * 25 B = 26 * 26 * 2

1352 + 650 + 17 = 2019

结果: BYQ

三、数列求值

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

一个for循环解决问题。

我设置了 a b c 三个变量 并赋值为1。 所以我是从第四个数开始循环。一直循环到20190324结束

结果:4659

 

四、数的分解

把2019 分解成3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?
注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18 和 1001+1000+18 被视为同一种。

思路:
让i < j < k, 然后判断i, j, k是否含2和4就行了
 

写一个判断函数,用来判断 i ,j ,k 是否不含2 和 4.

三重for

结果:40785

 

五、 迷宫


下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可以通行的地方。

010000
000100
001001
110000
1
2
3
4
迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。
对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通过迷宫,一共10 步。其中D、U、L、R 分别表示向下、向上、向左、向右走。对于下面这个更复杂的迷宫(30 行50 列),请找出一种通过迷宫的方式,其使用的步数最少,在步数最少的前提下,请找出字典序最小的一个作为答案。请注意在字典序中D<L<R<U。
 

试题 F: 特别数的和

时间限制: 1.0s 内存限制: 256.0MB 本题总分:15 分
【问题描述】
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0) ,在 1 到
40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到 n 中,所有这样的数的和是多少?
【输入格式】
输入一行包含两个整数 n。
【输出格式】
输出一行,包含一个整数,表示满足条件的数的和。
【样例输入】
40
【样例输出】
574
【评测用例规模与约定】
对于 20% 的评测用例,1 ≤ n ≤ 10。
对于 50% 的评测用例,1 ≤ n ≤ 100。
对于 80% 的评测用例,1 ≤ n ≤ 1000。
对于所有评测用例,1 ≤ n ≤ 10000。
 

#include <iostream>
using namespace std;

int judge(int x)
{
	while(x)
	{
		if(x % 10 == 2 || x % 10 == 1 || x % 10 == 0 || x % 10 == 9)	return 1;
		x /= 10;
	}
	return 0;
}

int main()
{
	int n;
	long long sum = 0;
	cin >> n;
	for(int i = 1; i <= n; i++)
	{
		if(judge(i))
			sum += i;
	}
	cout << sum;

	return 0; 
}

 

六、完全二叉树的权值

时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分 【问题描述】 给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从 上到下、从左到右的顺序依次是 A 1 , A 2 , ··· A N ,如下图所示: 现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点 权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。 注:根的深度是 1。 【输入格式】 第一行包含一个整数 N。 第二行包含 N 个整数 A 1 , A 2 , ··· A N 。 【输出格式】 输出一个整数代表答案。 【样例输入】 7 1 6 5 4 3 2 1 【样例输出】 2