2019年蓝桥杯总结

本文总结了2019年蓝桥杯算法竞赛的九道题目,涉及组队、年号字串、数列求值、数的分解、迷宫、特别数的和、完全二叉树、等差数列和后缀表达式等问题。通过思路和答案,展示了逻辑思维和编程解决算法问题的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今年的蓝桥杯整体来说难度并不是特别大,但是对于细节的考察确实特别多。逻辑思维也是一个考察点,写的时候一定要小心

一、组队

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

思路

第一题,我们可以通过看题目笔算出来

答案:490

二、年号字串

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

思路

第二题,我是直接让2019对26取余数得到最后一个字母
2019%26=17------------对应Q
让2019对26取整 2019/26=77
我们知道z是一个26;zz是26个26;azz是52个26;bzz是78个26;52<77<78
那么我们知道这个数一定是三位的,我们直接让77对26取余得到第二位上的字母
77%26=17------------对应Y
让77对26取整 77/26=2
我们可以得到第一位上的字母
77/26=2------------对应B
所以是BYQ

答案:BYQ

三、数列求值

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

思路

第三道题,感觉很像斐波那契,自己笔算肯定很费力,所以来跑段代码吧
主要使用到的公式就是(a[i]+a[i+1]+a[i+2])%10000;
算出来答案是4659

4659

四、数的分解

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

思路

第四道题,也是需要用代码来写;我们定义这三个数分别为i,j,k
说来惭愧,这道题我想到了用两重循环来确定i,j,k得值,也想到i,j得值都应该小于2019/3=673.也想到了用while循环来判断一个数中是否有2,4.
但是卡克的地方是我没想到i<j<k的关系,
其实仔细想想,如果i=5了,j一定要从6开始取值,因为1,2,3一定已经被i取过了,而且只要i,j得值小于2019/3=673,那么k得值一定比他们两个大三个数的值一定不会相同
下面来看一下代码

#include<iostream>
#include<cstdio>
using namespace std;
bool yes(int x) {
    while(x!=0)
    {
        if (x % 10 == 2 || x % 10 == 4) return false;
        x/=10;
    }
    return true;
}
int main() {
    int N = 2019;
    int sum = 0;
    for (int i = 1; i < N / 3; ++i)
    {
        if (yes(i))
        {
       
### 2019Java蓝桥杯竞赛概述 2019的第十届蓝桥杯竞赛吸引了众多高校参与,成为全国性的重要IT学科赛事之一[^3]。该度的比赛不仅涵盖了C++组别,也包含了Java组别的比赛内容。 ### 2019Java蓝桥杯题目概览 对于2019Java蓝桥杯的具体题目,在线资源提供了详细的解析和解答方法[^1]。这些资料通常会按照不同难度级别分类整理,并附带完整的解题思路和技术要点说明。 #### 示例题目:字符串处理问题 假设有一道关于字符串操作的经典题目: 给定两个字符串`str1` 和 `str2` ,判断它们是否互为变位词(即字母相同但排列顺序不同的单词)。例如,“listen”与“silent”。 ```java import java.util.Arrays; public class AnagramCheck { public static boolean isAnagram(String str1, String str2){ char[] ch1 = str1.toCharArray(); char[] ch2 = str2.toCharArray(); Arrays.sort(ch1); Arrays.sort(ch2); return Arrays.equals(ch1,ch2); } public static void main(String[] args) { System.out.println(isAnagram("listen", "silent")); // 输出 true } } ``` 此代码片段展示了如何通过排序来比较两个字符串中的字符组成情况,从而实现变位词检测功能。 ### 相关知识点总结 - **数据结构**:理解并熟练掌握基本的数据结构如数组、链表等。 - **算法设计**:能够运用常见的算法解决实际编程挑战,比如贪心法、动态规划等。 - **语言特性**:深入学习Java特有的语法特性和库函数应用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值