现在是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小时后出发