第十三届蓝桥杯国赛Python 大学C组

这篇博客探讨了若干算法问题的解题思路,包括斐波那契数列中7的出现次数、最大公约数的计算以及模拟交通信号的 bfs 解决方案。博主通过暴力和周期性分析解决了斐波那契问题,并讨论了如何判断数组是否存在解转化为1的变换。此外,还涉及到了最大公约数的快速计算以及交通信号灯状态变化的路径查找。

非题解 仅仅是自己的个人思路!!!

希望能为你提供一些思路,目前不确定正确与否,大家有更好好的思路也可以一起讨论~~~

目录

A:斐波那契与7

B:小蓝做实验

C:取模

D:内存空间

E:斐波那契数组

F: 最大公约数

G: 交通信号

H: 点亮

 I: owo

J: 宝石收集


A:斐波那契与7

解题思路:

  • 当前项个位 只与前两项的个位有关      (十位百位... 相加 影响不到个位)
  • 那么当相邻两项的个位在之前出现过时  即又会反复1 1 2 3 5... 即会周期循环下去

思考:要想后面项的个位又重复出现3 5 那么前面两项 必然是1 2 而1 2 两项前面又必然是 0 1 

所以可以发现 0 1 1 2 3 5 是绑定死的 所以可以判断下一次出现1 1 即为下一次周期的开始

#ans:26960268160

#暴力:返回1-n项之间的数列7的个数
def fun1(n): 
    res = 0
    a,b = 1,1
    for i in range(3,n + 1):
        if (a + b) % 10 == 7:res += 1
        a,b = b,(a + b) % 10
    return res

#利用周期性:返回1-n项之间的数列7的个数
def fun2(n):
    res = 0
    res = (n // 60) * 8 + fun1(n % 60)
    return res

if __name__ == "__main__":
    n = int(input().strip())
    print("fun2",fun2(n))
##    以下是我找周期和计算该周期里7的个数的过程
##    Set,a,b,t = ['1 1'],1,1,0
##    while True:
##        s = str(b % 10) + ' ' + str((a + b) % 10)
##        if s in Set:break
##        else:Set.append(s)
##        a,b = b,a + b
##        if b % 10 == 7:t += 1
##    print(t,len(Set))
##    print(fun1(n % 61))

B:小蓝做实验

解题思路:利用输入流 暴力判断即可 大概3分钟之内

#ans:342693
import fileinput
def check(x):
    i = 2
    while i * i <= x:
        if x % i == 0:return False
        i += 1
    return True


if __name__ == "__main__":
    f = fileinput.input(files="C:/Users/Aoung/Desktop/LQ2022SF_PC/primes.txt")
    cnt = 0
    while True:
        try:
            if check(int(f.readline().strip())):cnt += 1       
        except:
            break
    print(cnt)

C:取模

解题思路:暴力~~~   蒟蒻代码就不贴了

D:内存空间

解题思路:模拟  &nb

### 关于第十三届蓝桥杯 Python 题及解析 目前公开的资料主要集中在省级竞阶段,对于家级决的具体题目和解析尚未全面披露。然而,可以通过分析已有的省级竞内容推测可能涉及的知识点和技术难点。 #### 题目背景与技术要点 根据往年的趋势[^2],蓝桥杯通常会延续省的技术框架并提升难度。以下是基于省内容预测的一些方向: 1. **算法设计** - 数学推理:如质数判断、最大公约数最小公倍数计算等。 ```python def gcd(a, b): while b != 0: a, b = b, a % b return a ``` - 动态规划:解决复杂优化问题,例如背包问题变种或序列匹配。 2. **数据结构应用** - 字符串处理:字符串模式匹配、子串查找等问题。 ```python import re pattern = r'\d+' # 查找所有数字 result = re.findall(pattern, 'abc123def456') print(result) # 输出 ['123', '456'] ``` 3. **综合能力考察** - 多条件约束下的模拟仿真:需要考生具备较强的逻辑思维能力和代码实现技巧。 - 时间效率考量:部分题目可能会设置严格的时间限制,要求选手选用高效算法。 #### 解题策略建议 针对上述提到的各种类型试题,给出如下几点备战指南: - 加强基础训练,熟练掌握常用库函数; - 注重实战演练,积累经验应对突发状况; - 学习经典模型及其变形形式,拓宽视野适应新情境; ```python from collections import deque queue = deque([1, 2, 3]) queue.append(4) print(queue.popleft()) # 输出队列头部元素 ``` #### 参加信息补充 参者需注意官方发布的最新动态通知,包括但不限于考试日期安排、考场规则说明等方面的信息更新。同时保持良好身体状态也是取得优异成绩的重要保障之一[^3]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值