蓝桥杯比赛python组(一),未来的国一分享

蓝桥杯笔记

1.面对计算一个字符串中的单个字母的出现次数

不一定需要用for循环,可以直接temp.count(“字符”)

for j in word:

  if word.count(j)==a:

​    b.append(j)

2.如果要计算百分数,出现78%,90.8%,32.12%

四舍五入保留整数

jg=9
num=10
print('{:.0f}%'.format(100*jg/num))#f前面的数字是保留几位小数

3.判断数字是否是回文,如20200202

重点学习列表切片换位的思想

if sd[:] == sd[::-1]:  # 判断日期是否是回文20200202
    print(sd)

4.关于输入表格文件,怎么处理数据

data = '''
****     180.90       88折
****      10.25       65折
****      56.14        9折
****      12.89       75折
****      34.28       75折
****      62.16       58折
****     129.12        半价
****     218.37        半价
****     289.69        8折
'''
data = data.split()#括号里面为空,适合与不知道有多少空格,
print(data)

5.关于for循环中设置隔板

for i in range(0,len(data),3):#可以设置每次从0开始跳3g
   print(i)

6.遇见价格问题只能向上取整(math.ceil)

 print(math.ceil(sum/100)*100)

7.关于处理python中的冒泡排序次数

import os import sys # 请在此输入您的代码 ‘’’ 全逆乱序的冒泡排序次数为

​ N***(N-1)/2 **

**15*14/2=105 **

**14***13/2=91 100次交换至少需要15个字母 onmlkgihgfedcba

105-100=5,只需把第6个字母往后移到第1位即可 ‘’’ print(“jonmlkihgfedcba”)

请帮助小蓝找一个只包含小写英文字母且没有字母重复出现的字符串,对 该串的字符排序,正好需要 100100 次交换。如果可能找到多个,请告诉小蓝最短的那个。如果最短的仍然有多个,请告诉小蓝字典序最小的那个。

8.关于时间日期,datetime库的使用

以下代码解决在一段时间类有多少个星期一和一号

import datetime

start = datetime.date(2000, 1, 1)#设置开始时间
end = datetime.date(2020, 10, 1)#设置结束时间
days = datetime.timedelta(days=1)#设置每一天的度过
print(start)
ans=0
while end >= start:
    print(start.weekday())
    if start.day == 1 or start.weekday() == 0:#时间是每个月1号或者每周星期一的
        ans += 2
    else:
        ans += 1
    start += days
print(ans)

9.关于自顶向下的树的应用

小蓝在一个 nn 行 mm 列的方格图中玩一个游戏。开始时,小蓝站在方格图的左上角,即第 11 行第 11 列。

小蓝可以在方格图上走动,走动时,如果当前在第 rr 行第 cc 列,他不能走到行号比 rr 小的行,也不能走到列号比 cc 小的列。同时,他一步走的直线距离不超过 33。

例如,如果当前小蓝在第 33 行第 55 列,他下一步可以走到第 33 行第 66 列、第 33 行第 77 列、第 33 行第 88 列、第 44 行第 55 列、第 44 行第 66 列、第 44 行第 77 列、第 55 行第 55 列、第 55 行第 66 列、第 66 行第 55 列之一。

小蓝最终要走到第 nn 行第 mm 列。在图中,有的位置有奖励,走上去即可获得,有的位置有惩罚,走上去就要接受惩罚。奖励和惩罚最终抽象成一个权值,奖励为正,惩罚为负。

小蓝希望,从第 11 行第 11 列走到第 nn 行第 mm 列后,总的权值和最大。请问最大是多少?

输入描述

输入的第一行包含两个整数 n, mn,m,表示图的大小。

接下来 nn 行,每行 mm 个整数,表示方格图中每个点的权值。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UKGe9HuO-1677049962679)(C:\Users\1\AppData\Roaming\Typora\typora-user-images\image-20230214092900699.png)]

import os

import sys



n,m=(int(x) for x in input().split(" "))    #输入的数字用空格隔开

map1=[]

for i in range(n):

  a=[int(x) for x in input().split(" ")]

  map1.append(a)

dp=[[-100]*(m+3) for i in range(n+3)]#创建二维列表,防止浅拷贝的发生



for i in range(3,n+3):

  for j in range(3,m+3):

​    if i==3 and j==3:

​      dp[i][j]=map1[i-3][j-3]

​    else:

​      dp[i][j]=map1[i-3][j-3]+max(dp[i-1][j],dp[i-2][j],dp[i-3][j],dp[i-1][j-1],dp[i-1][j-2],dp[i-2][j-1],dp[i-2][j-2],dp[i][j-1],dp[i][j-2],dp[i][j-3])

print(dp[-1][-1])
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值