分析
难度还行,这套卷子相对Java那套可能简单了不少,但抵不住自己菜啊
1.
牛牛现在有一个包含N的正整数的数组a,牛牛可以将其中的每个数a[i] 都拆成若干个和为 a[i] 的整数,牛牛想知道这个数组最多能有多少素数?
数学题,就是根据奇偶数直接判断,绕过来就行了
N = int(input()) nums = list(map(int,input().split())) res = 0 for val in nums: if val % 2== 0: res += val //2 else: res += (val-1)//2 print(res)
2.
给定[E, EM, M, MH, H]五种难度的leetcode题,尽可能地出多套卷子,每套卷子含E或EM、M或EM或HM、H或MH三种组合。
思路:二分查找,限定值mid后判断该值是不是可以满足
先对E和H进行处理,补到mid的大小,然后在计算剩下的M和MH、EM的和能不能达到mid
def main(): [E, EM, M, MH, H] = list(map(int, input().split())) max_val = (E + EM + M + MH + H) // 3 def find(i, E, EM, M, MH, H): if E < i: cur = min(i - E, EM) E += cur EM -= cur if H < i: cur = min(i - H, MH) H += cur MH -= cur if M + EM + MH >= i and E >= i and H >= i: return True return False res = 0 left, right = 0, max_val while left <= right: mid = (left + right) // 2 if find(mid, E, EM, M, MH, H): left = mid + 1 res = max(res, mid) else: right = mid - 1 print(res) main()
3.
计算总成绩,要求最后的总成绩如果是以5结尾的话记为0分
计算总成绩,要求最后的总成绩包含5的话记为0分
- 没想到合适的方法,就暴力处理了一下,A了70
题主竟然没理解题意就A了70 .。。我也是服了
N = int(input()) nums = list(map(int, input().split())) score_sum = sum(nums) if str(score_sum)[-1] != '5': print(score_sum) else: nums.sort() min_non_ten = 1e9 for i in range(len(nums)): if nums[i] % 10 != 0: min_non_ten = nums[i] if nums[i] > min_non_ten: break print(score_sum - min_non_ten)
4.
平分数组,计算最少丢弃多少才能使两个人各自的物品和相等。
没写出来。。
写了一个DFS,没想到还有双DFS这种操作。。
全部评论
(9) 回帖