码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #646 (Div. 2) A. Odd Selection(数学)

时间:2020-06-01 10:24:32      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:题目   代码   判断   $1   span   lse   数加   test   nbsp   

题目链接:https://codeforces.com/contest/1363/problem/A

题意

判断是否能从 $n$ 个数中选 $k$ 个数加起来和为奇数。

题解

首先 $n$ 个数中需至少有 $1$ 个奇数,之后为了不影响和的奇偶性向余下 $k-1$ 个数中一次加入两个奇数或一个偶数即可。

代码

#include <bits/stdc++.h>
using namespace std;

void solve() {
    int n, x; cin >> n >> x;
    int odd = 0, even = 0;
    for (int i = 0; i < n; i++) {
        int t; cin >> t;
        if (t & 1) ++odd;
        else ++even;
    }
    if (odd == 0) cout << "No" << "\n";
    else {
        --x, --odd;
        x -= 2 * min(x / 2, odd / 2);
        cout << (even >= x ? "Yes" : "No") << "\n";
    }
}

int main() {
    int t; cin >> t;
    while (t--) solve();
}

 

Codeforces Round #646 (Div. 2) A. Odd Selection(数学)

标签:题目   代码   判断   $1   span   lse   数加   test   nbsp   

原文地址:https://www.cnblogs.com/Kanoon/p/13023640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!