第十二届蓝桥杯第三期,后面几道题--最后一天

现在是23:28,时间比较晚了,由于之前的几道大题没写,回来看一遍,发现思路还是很清晰,于是重新梳理一遍

分割题
在这里插入图片描述
说下思路:
刚重新做一遍,思路是吧整数转化字符串,题目只是吧整数换个格式输出,每三位加个逗号,那可以吧字符串拆分多段,然后遍历就行,,
看到佬哥一串这代码**,用{}函数,十进制**

ans=int(input())
print('{:,}',ans)

新闻题
在这里插入图片描述

思路: 这道题更简单,看他给的例题,整数为2021,条数为10,那起码都想到10*22=2020<2021这部分推理

ans=int(input())
num=int(input())
res=ans//num
#可能会有整除情况,没有的话+1
if ans%res!=0:
    ans+=1
print(ans)

杂货铺题
在这里插入图片描述
这道题很明显的递归题,看了一篇佬哥的博客,
有几部分点睛之笔

n = int(input())
string = [None for i in range(n)]
value = [None for i in range(n)]

for i in range(n):
    temp = input().split()
    value[i] = int(temp[0])
    string[i] = temp[1]

def dfs(zifu,cost,index):
    min_cost = 100001
    if 'A' in zifu and 'B' in zifu and 'C' in zifu:
        return cost #点睛之笔,返回的是cost,不是cost1,cost1表示买装备的费用值,
    # if index>n:
    #     return float('inf')
    for i in range(index,n):
        print(zifu+string[i],cost+value[i],i+1) #点睛之笔2
        cost1 =dfs(zifu+string[i],cost+value[i],i+1)
        if cost1<min_cost:#点睛之笔3
            min_cost = cost1
    return min_cost

min_cost = dfs('',0,0)
print(min_cost)
版权声明:本文为CSDN博主「南岸青栀*」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43710889/article/details/115672859

我这里对上面做了一些修改,join函数改用+直接拼接可以,佬哥牛逼在定义了一个无穷打的树,取最小,这里题目最大值为100000,我用100001代替,
第二部分,在于不在dfs里直接写min取最小,放到下一部分写if再取,减少复杂度。

修改后正常运行代码
在这里插入图片描述
ok,复现完毕,睡觉,7小时后出发
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ECHO::

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值