《2019年蓝桥杯C++b组》

本文介绍了蓝桥杯竞赛中的几道算法题目,涉及篮球队员评分优化、字母数字对应、数列求值、数的分解、特别数的和、完全二叉树权值、等差数列及后缀表达式计算。通过实例解析和代码展示,阐述了解题思路和方法,适合提升编程与数学思维。

A-组队

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

B-年号字符

题目描述
小明用字母A 对应数字1,B 对应2,以此类推,用Z 对应26。对于27以上的数字
小明用两位或更长位的字符串来对应,例如AA 对应27,AB 对应28,AZ 对应52,LQ 对应329。
请问2019 对应的字符串是什么?
//答案BYQ 这个题我还是手算的。太菜了不会写代码

C-数列求值

题目描述
给定数列1, 1, 1, 3, 5, 9, 17, …,从第4 项开始,每项都是前3 项的和。求
第20190324 项的最后4 位数字。
//这个题目也是非常简单的。需要注意的是每求和一次对10000求余

#include<iostream>
#include<algorithm>
using namespace std;
int a[20190324];
int main() {
   
   
    a[0]=1;
    a[1]=1;
    a[2]=1;
    for(int i=3; i<20190324; i++) {
   
   
        a[i]=(a[i-1]+a[i-2]+a[i-3])%10000;
    }
    cout<<a[20190323]%10000<<endl;
    return 0;
}

D-数的分解

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

//暴力,注意是3个不相同的正整数,防止重复,i<j<k

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define inf 0x7fffffff
 int a,b,c,sum;
 bool tian(int x){
   
   
 	while(x){
   
   
 		if(x%10==4||x%10==2)
 		return false;
 		x=x/10;
	 }
	 return true;
 }
int main()
{
   
    
sum=
### 蓝桥杯 C++ B 题目 解题思路 学习资料 #### 关于蓝桥杯C++ B的题目特点 蓝桥杯作为一项面向大学生的程序设计竞赛,其C++ B题目通常涵盖了基础算法、数据结构以及一些简单的数学问题。这些题目往往需要选手具备扎实的基础知识一定的编程能力。例如,在2019的比赛中,部分题目涉及到广度优先搜索(BFS)、深度优先搜索(DFS)、完全二叉树的操作、排序与最大公约数(GCD)的应用等[^1]。 #### 历真题分析 以下是基于历蓝桥杯C++ B的一些典型题目及其解法: ##### 广搜/深搜类问题 对于某些路径规划或者状态转移的问题,可以考虑使用广搜或深搜方法求解。然而需要注意的是,如果采用深搜策略,则可能面临性能瓶颈,因此剪枝技术显得尤为重要。比如某道关于迷宫探索的题目,可以通过设置合理的终止条件减少必要的计算开销。 ##### 完全二叉树操作 当遇到有关树形结构的数据处理时,利用数模拟静态树是一种高效的方式。具体而言,可以在节点定义中增加额外字段用于存储层次信息,并通过遍历方式累加每层权重值以便后续比较得出结果。这种方法仅简化了实现过程还提高了运行效率。 ##### 排序+GCD应用 针对一整数序列寻找满足特定规律子集的任务,可先对其进行升序排列后再依次两两取差值得到候选集合;接着运用欧几里得算法求出所有相邻元素间差异的最大公约数值d。特别注意边界情况如存在重复项或是零差情形下的特殊判定逻辑[^1]。 ##### 动态规划初步尝试 尽管当前阶段尚未深入探讨动态规划相关内容,但从实际经验来看它将是未来攻克更复杂难题可或缺的一部分工具之一。建议提前熟悉经典模型诸如背包问题系列并加以练习巩固理论基础[^3]。 #### 推荐学习资源 为了更好地备战此类赛事,可以从以下几个方面着手准备: - **官方文档**:查阅往届试题解析报告获取权威指导方向。 - **在线平台**:参与LeetCode、Codeforces等相关训练营提升实战技巧水平。 - **书籍阅读**:《算法导论》提供全面系统的概念阐述,《挑战程序设计竞赛》则侧重实例剖析便于模仿实践[^2]。 ```cpp // 示例代码展示如何快速找到两个大整型之间的最大公约数(GCD) #include <iostream> using namespace std; int gcd(int a, int b){ while(b != 0){ int temp = a % b; a = b; b = temp; } return abs(a); } int main(){ cout << "Enter two integers:" ; int num1,num2; cin>>num1>>num2; cout<<"The GCD of "<<num1<<" and "<<num2<< " is:"<<gcd(num1,num2)<<endl; } ``` 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值