牛客小白月赛41 python 题解
A. 小红的签到题
Solution
数据范围很小,枚举ak的人数即可。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49823462
B. 小红的ABC
Solution
数据范围很小,枚举长度和起点,python可以直接截取一段长度 s[l:r], 反着截取是 s[l:r:-1],直接判断是否相等即可。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49823499
C. 小红的口罩
Solution
维护一个优先队列,每次取权值最小的口罩,判断会不会超出即可,这里要注意 python 优先队列的写法。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49823742
D. 小红的数组
Solution
排序后二分,找最小的乘积大于k的位置,最大的乘积小于k的位置,他们中间就是乘积等于k的。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49834298
E. 小红的rpg游戏
Solution
简单 bfs,注意 python 的 vis = [0 * m] * n 是浅拷贝,每一列的内存是一样的,会同时改变。 所以要用vis = [0 for i in range(m)] for i in range(n) 初始化二维数组。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49832728
F. 小红的375
Solution
打表不难发现后三位周期为8,后三位只会是 000、375、750、125、500、875、250、625 然后前面的数字周期为3,即(0,3,6,9)000、(0,3,6,9)375、(0,3,6,9)750、(1, 4, 7)125、(1, 4, 7)500、(1, 4, 7)875、(2, 5, 8)250、(2, 5, 8)625。所以我们模拟一下就行了,注意处理 的情况,此时只有重组成375,750的情况。
Code
https://ac.nowcoder.com/acm/contest/view-submission?submissionId=49835978
一些比赛的题解