比赛链接: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就可以。