zoukankan      html  css  js  c++  java
  • CodeForces 1363A. Odd Selection

    题意:从数组a中选出x个数,并且这x个数的和等于奇数,求是否能组成奇数。

    分析:

    我们先统计奇数个数和偶数个数,可以看出图片里面的规律,奇数 + 奇数 = 偶数,奇数 + 偶数 = 偶数,也就是我们必须要有奇数个奇数,才能组成奇数的和,而偶数对和是没有影响的,奇数加偶数还是奇数,那么我们i 遍历1, 3, 5, 7,这些个数,然后用x去减去i,就是我们用偶数去填补的,注意减去后的偶数个数必须是>=0,大多数wa3都是这里的原因。(悲伤!)

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    int main()
    {
    	int t;
    	scanf("%d", &t);
    
    	while (t--)
    	{
    		int n, x;
    		scanf("%d%d", &n, &x);
    
    		//奇数个数、偶数个数
    		int n1 = 0, n2 = 0;
    		int q;
    		for (int i = 1; i <= n; ++i)
    		{
    			scanf("%d", &q);
    			if (q & 1) ++n1;
    			else ++n2;
    		}
    
    		bool flag = false;
    		for (int i = 1; i <= n1; i += 2)
    		{
    			int u = x - i;
    			if (u <= n2 && u >= 0)
    			{
    				flag = true;
    				puts("Yes");
    				break;
    			}			
    		}
    		if (!flag)
    		{
    			puts("No");
    		}
    
    	}
    
    
    
    	return 0;
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  • 相关阅读:
    Phar与Composer
    [转]一张图帮你搞定职业规划
    Yii2初谈
    阿里前端框架Alice是个不错的选择
    PHP的PSR系列规范都有啥内容
    最新微信公众平台js sdk整合PHP版
    何时该开始写测试代码
    我们太匆忙
    今日思考
    Scala确实是门好语言
  • 原文地址:https://www.cnblogs.com/pixel-Teee/p/13023263.html
Copyright © 2011-2022 走看看