检查是否可以将序列划分为具有奇数和的 k 个不相交的小节

Check if it's possible to divide sequence into k non-intersecting subsections with odd sums

提问人:smihds 提问时间:10/20/2022 更新时间:10/20/2022 访问量:26

问:

*减法器是一组连续的元素。

我创建了这个算法,但它不适用于 4 测试。我不知道哪里是错误的

n, k = map(int, input().split())
num = [int(i) % 2 for i in input().split()]
if (k - sum(num)) % 2 == 0:
    print('YES')
else:
    print('NO')
Python 算法 序列

评论

0赞 Paul Hankin 10/20/2022
当您的输入中没有足够的奇数时,它会失败:您还需要 .例如,k=2 并且输入 [2] 失败。sum(num) >= k
0赞 Community 10/20/2022
请澄清您的具体问题或提供其他详细信息,以准确说明您的需求。正如目前所写的那样,很难确切地说出你在问什么。

答:

0赞 Paul Hankin 10/20/2022 #1

当且仅当奇数数为非负偶数时,才能将序列拆分为多个子序列,每个子序列都具有奇数和。代码测试奇数数是否为任何偶数(正数、零数或负数)正数。kkk

试试这个:

n, k = map(int, input().split())
odds = sum(int(i) % 2 for i in input().split())
if odds >= k && (odds - k) % 2 == 0:
    print('YES')
else:
    print('NO')