4.11美团笔试第一题思路

import sys
lines = sys.stdin.readlines()
N = int(lines[0])
for i in range(N):
    n,x = map(int,lines[2*i+1].split())
    nums = list(map(int,lines[2*i+2].split()))
    box_num = n//2
    box = []
    for j in range(box_num):
        a = nums[2*j] % 2
        b = nums[2*j+1] % 2
        if a == b:
           box.append(a)
        else:
            box.append(2)
    if n%2:
        box_num += 1
        box.append(nums[-1]%2)
    if max(box)==2:
        print("Yes")
    else:
        s = sum(box)
        if not s:
            print("No")
        elif s==box_num and x%2==0:
            print("No")
        elif x == box_num and s%2 == 0:
            print("No")
        else:
            print("Yes")
全部评论
奇偶处理到位
点赞 回复 分享
发布于 昨天 15:05 北京
思路是先判断混合盒子一定Yes,然后考虑全偶,全奇(x偶),选所有盒子且奇数盒子是偶数个这三种情况为No,剩下为Yes
点赞 回复 分享
发布于 昨天 12:23 黑龙江

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务