(python)牛客周赛 Round 33 A B C D E

文章介绍了四个与编程相关的挑战:使用Python内置函数处理单词,优化煮汤圆的策略,最大化01串中的1,以及利用字典清空数组。每个问题都涉及不同的算法和数据结构技巧。
摘要由CSDN通过智能技术生成

比赛链接:https://ac.nowcoder.com/acm/contest/75630

A.小红的单词整理

直接用python的内置函数split即可解决

如果不怕麻烦还可以直接暴力解决

B.小红煮汤圆

思路:

n乘x为汤圆总个数,可以煮的次数为总个数直接整除k,因为不足k个不能煮。列一个list1来记录每次煮几个汤圆,定义一个count来记数,当总数大于等于0时循环继续,定义一个mei来记录当前汤圆数量,如果汤圆数量大于等于可以煮的数量,那么把count加到list1里面并重新让count等于0,如果没有的话总数持续下降,count加1,个数加b

C.小红的 01 串

思路:

因为可以删除第一个数,所以第一个数是可以控制的,我们为了最大化1,所以把前面的0都删了,那么这串数字就可以分为两部分,开头的1和后面,那么怎么算后面的最大值呢?我们用一个后缀的方法,从后往前遍历,如果碰到了1,count加1,如果碰到了0,count减1,我们再比较count和max_hou的大小,最后能确定后面可以最大加几,再把开头的1和后面的max_hou相加就可以。

D.小红的数组清空

思路:

用字典做比较简单,我们先把数存到字典里去,之后遍历整个字典,如果i-1在字典中并且它的值不为0,那么我们把字典中i-1的值减一,count不动,如果不符合条件,即符合第一种1操作,那么count就加一,最后再输出count就可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值