当前位置: 首页 > news >正文

蓝桥杯 python 研究生组 备战刷题

动态规划

1. 奖杯排序

题目

难度:※※※※

学习点:
defaultdict的使用可以设置字典的初始值,不用担心key不存在问题;
动态规划的难点是:如何定义dp数组的含义,以及考虑清楚每次的情况。

代码:

from collections import defaultdict

mod=10**9+7

N,K=map(int,input().split())
values=list(map(int,input().split()))

# 统计奖杯值v为结尾时,可能的等差k数列个数
dp=defaultdict(int)
# 不断统计奖杯值v出现的次数
cnt=defaultdict(int)

res=0

# 遍历每一个奖杯
for v in values:
  # v为结尾的等差K数列有两种情况:
  # 1. v前面v-k这个奖杯为结尾,后面再跟上一个v
  # 2. v前面v-k这个奖杯为开头,后面再更上一个v
  new=dp[v-K]+cnt[v-K]
  dp[v]+=new
  dp[v]%=mod
  res+=new
  res%=mod
  cnt[v]+=1

print(res)

数学思维

1. 铺设地砖

题目

难度:※※※※※

学习点:
一个作弊点:基本上N是什么,就遍历什么
这里N是列,所以就遍历列
每一列有四种情况,蓝蓝,蓝白,白蓝和白白,因为出现白白机器人无法走到右下角,因此排除这种情况
我们统计每一列这三种情况下满足题目要求的规划方案,用a,b,c分别表示
先可以得出a b c的迭代公式;
然后发现b和c之间的关系;
然后我们要计算的是最后一列的情况也就是a+b,发现等于下一轮的c,经过一些替换后就得到了一个关于c的线性非齐次递推关系
用数值分析里面学过的方法来计算c即可
这里面有幂和除法取模,所以还用到了快速幂和费马小定理(虽然测试用例不用快速幂也可以通过)

这题非常非常非常难,每一步都很难,而且没学过数值分析求解递推关系的话,这题可能根本不会做

在这里插入图片描述

mod=10**9+7
# 快速幂(包含求模)
def quick_pow(a,b):
    res=1
    while b:
        if b%2:
            res=(res*a)%mod # 关键求模处
        b//=2
        a=(a*a)%mod # 关键求模处(这里没有的话,计算会非常慢)
    return res

T=int(input())
for _ in range(T):
    N=int(input())
    if N%2==0:
        t=-1
    else:
        t=1
    res=(quick_pow(2,N+2)+t-3) % mod
    # 费马小定理
    res=(res*quick_pow(6,mod-2)) % mod
    print(res)

模拟

1. 分布式队列

难度:※※

学习点:
简单题,但是有两个地方要注意
1 sync时不能盲目增加follow队列的元素个数,要检查此时follow队列是不是因为完全同步结束了
2 while循环输入里面要对输入进行异常捕捉,否则会出现段错误

N = int(input())
new_loc = [0 for _ in range(N)]
while True:
    try:
        operation = input().split()
        op = operation[0]
        if op != 'query':
            id = int(operation[1])
            if op == 'add':
                new_loc[0] += 1
            else:
                if new_loc[id] < new_loc[0]:
                    new_loc[id] += 1
        else:
            print(min(new_loc))
    except:
        break

相关文章:

  • PhotoShop学习03
  • Android 中获取颜色资源
  • Buzz1.2.0视频语音转成TXT、SRT、VTT工具
  • Python数据可视化-第4章-图表样式的美化
  • SQL INSERT INTO 语句详解
  • Linux编译安装mysql5.7.44 笔记250330
  • win 远程 ubuntu 服务器 安装图形界面
  • Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
  • qt介绍tcp通信
  • python+playwright 学习-93 结合pands 抓取网页表格数据
  • C# System.Net.Dns 使用详解
  • 【Linux】动静态库的制作与使用
  • AI知识补全(十):AI伦理与安全是什么?
  • 召唤数学精灵
  • Jiangxi Province Baseball Softball Development Plan【江西棒垒球】
  • AI提示语:生成演示文稿 PPT
  • 将内网的IP地址映射到外网的几种方案
  • 堆叠虚拟化
  • Spring Boot分布式项目重试实战:九种失效场景与正确打开方式
  • JavaScript中 == 和 === 区别
  • 给百度做网站的公司/设计网站都有哪些
  • 龙岗招聘网/关键词优化排名用哪个软件比较好
  • 做推广类门户网站怎么样/网上开店如何推广自己的网店
  • 做旅游平台网站找哪家好/产品销售方案与营销策略
  • 付费小说网站建设/百度ai助手入口
  • 网站开发与推广就业/服务器ip域名解析