【蓝桥杯真题】提升篇 详解 Python(1)

简介: 【蓝桥杯真题】提升篇 详解 Python

1.巧排扑克牌

image.png



问题分析:手算 作图模拟 编号0-12 ,0作为"最底层的牌"" ,即下面规定越靠近左侧越下面


第一轮 可以确定6个数字,因为都是隔着一项出牌,在对应编号上写上对应数字


由于12以后看似没有牌了,我们需要重新组合,在第一轮过程中,未被编号的将后移,注意顺序


image.png


结果:


print('7, A, Q, 2, 8, 3, J, 4, 9, 5, K, 6, 10')


2.质数拆分


image.png


问题分析:先用埃筛法 把0—2019的质数选出来 存入数组Prime


然后利用背包的思想对于第j个质数,只有取和不取的两种可能


dp[i][j]:代表从j个质数中选 恰好和为i的方案数


那么dp[i][j]=prime[j]不取的方案数+prime[j]取的方案数,i为背包容量(总数和)


如果prime[j]>i,那么prime[j]取的方案数=0


如果prime[j]<i ,那么prime[j]可取,prime[j]取的方案数!=0,因而其的计算方法为:在i的容量大小下预留prime[j]的空间 前j-1个质数可构成的方案


最后初始化dp[0]全部设为1


结果:55965365465060


max=2019
is_prime=[1]*2020#is_prime[i]代表i是否为素数,是为1,不是为0
prime=[0]#埃筛 特殊将0作为第0个质数
for i in range(2,max+1):
    if is_prime[i]:
        prime.append(i)
        j=i+i
        while j<=max:
            is_prime[j]=0
            j+=i
#dp[i][j]代表从j个质数中选 恰好和为i的方案数
#dp[i][j]=prime[j]不取的方案数+prime[j]取的方案数
#若prime[j]<=i:dp[i][j]=dp[i-prime[j]][j-1]+dp[i][j-1]
#如果prime[j]>i dp[i][j]=dp[i][j-1]
n=len(prime)
dp=[[0]*(n) for i in range(0,2020)]
dp[0]=[1]*(n)
for i in range(1,2020):
    for j in range(1,n):
        if prime[j]>i:
            dp[i][j]=dp[i][j-1]
        else:
            dp[i][j]=dp[i-prime[j]][j-1]+dp[i][j-1]
print(dp[2019][-1])

     


3.日志统计

image.png



问题分析:签到题,需要用到‘’字典‘’,以Id为Key,r[id]=[t1,t2,t3...],将点赞时刻填入列表。


将列表升序排列,遍历列表,以点赞数目K为间距,如果时间差<=d,符合,id可选。


代码已经AC

n,d,k=map(int,input().split())
r=dict()
for i in range(n):
    ts,id=map(int,input().split())
    if id not in r.keys():
        r[id]=[ts]
    else:
        r[id].append(ts)
s=[]#记录符合的id
for i in r.keys():
    l=r[i]
    l.sort()
    if len(l)<k:
        continue
    for j in range(len(l)):
        if j+k-1<=len(l)-1:
            if l[j+k-1]-l[j]<=d-1:
                s.append(i)
                break
s.sort()
for i in s:
    print(i)
目录
相关文章
|
1月前
|
Python
蓝桥杯练习题(一):Python组之入门训练题
这篇文章是关于蓝桥杯Python组的入门训练题,包括Fibonacci数列、圆的面积、序列求和和A+B问题的具体代码实现和样例输出。
112 0
|
1月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
58 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
1月前
|
人工智能 Python
蓝桥杯练习题(四):Python组之历届试题三十题
关于蓝桥杯Python组历届试题的三十个练习题的总结,包括题目描述、输入输出格式、样例输入输出以及部分题目的解题思路和代码实现。
30 0
蓝桥杯练习题(四):Python组之历届试题三十题
|
1月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(二):Python组之基础练习三十题
蓝桥杯Python编程练习题的集合,包含了三十个不同难度的编程题目,覆盖了基础语法、数据结构和算法等领域。
28 0
|
6月前
|
索引 Python 容器
【备战蓝桥杯】探索Python内置标准库collections的使用
【备战蓝桥杯】探索Python内置标准库collections的使用
90 1
|
6月前
|
开发者 Python
【备战蓝桥杯】如何使用Python 内置模块datetime去计算我与CSDN相遇的天数
【备战蓝桥杯】如何使用Python 内置模块datetime去计算我与CSDN相遇的天数
69 1
|
6月前
|
算法 测试技术 编译器
蓝桥杯-02-python组考点与14届真题
蓝桥杯-02-python组考点与14届真题
|
BI Python
【蓝桥杯真题】提升篇 详解 Python(2)
【蓝桥杯真题】提升篇 详解 Python
83 0
【蓝桥杯真题】提升篇 详解 Python(2)
|
3天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
3天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!