题目描述

Farmer John 正再一次尝试给他的 N 头奶牛拍照(2≤N≤1000)。

每头奶牛有一个范围在 1…100 之内的整数的「品种编号」。Farmer John 对他的照片有一个十分古怪的构思:他希望将所有的奶牛分为不相交的若干组(换句话说,将每头奶牛分到恰好一组中)并将这些组排成一行,使得第一组的奶牛的品种编号之和为偶数,第二组的编号之和为奇数,以此类推,奇偶交替。

Farmer John 可以分成的最大组数是多少?

输入格式(从终端/标准输入读入):

输入的第一行包含 N。下一行包含 N 个空格分隔的整数,为 N 头奶牛的品种编号。

输出格式(输出至终端/标准输出):

输出 Farmer John 的照片中的最大组数。可以证明,至少存在一种符合要求的分组方案。

输入样例:

7
1 3 5 7 9 11 13

输出样例:

3

样例解释

在这个样例中,以下是一种分成最大组数三组的方案。将 1 和 3 分在第一组,5、7 和 9 分在第二组,11 和 13 分在第三组。

输入样例:

7
11 2 17 13 1 15 3

输出样例:

5

样例解释

在这个样例中,以下是一种分成最大组数五组的方案。将 2 分在第一组,11 分在第二组,13 和 1 分在第三组,15 分在第四组,17 和 3 分在第五组。

供题:Nick Wu

要求与思路:

1. 要求:给n个数字分组,并按照偶数、奇数、偶数、奇数...这样的顺序进行排列

2. 能够形成题目要求的偶数、奇数、偶数...这样的顺序只有两种情况,一种是偶数的组合比奇数多一个,一种是偶数的组合和奇数一样多。同时奇数可以两两结合变成偶数,但是偶数如果想变成奇数则必须结合一个奇数才可以。

3. 分类,以下用even代表偶数数字的个数,用odd代表奇数数字的个数

a, odd>even,则需要将两个奇数合并为一个偶数,直到odd<=even

b, odd==even,则可以划分为2*odd个组合

c, odd + 1 == even,则可以划分为2*odd+1个组合

d, odd < even - 1,则合并偶数,按照奇数的数量划分为2*odd+1个组合

代码

#include <iostream>
#include <cstdio>
using namespace std;
int main(){int n;cin >> n;int even = 0, odd = 0;//统计奇数、偶数数字的个数 for (int i = 1; i <= n; i++){int tmp;cin >> tmp;if (tmp % 2 == 1)odd++;else even++;}//根据奇数偶数个数分类处理//奇数可以组合变成偶数,但是偶数要想变成奇数必须联合一个奇数//同时发现,一个偶数后边跟着一个奇数,总量要么二者数量相等E+O要么偶数多一个 //所以可以平衡下Even和Odd的数量差 while(odd > even){odd -= 2;even++; }//接下来分三类if (odd == even) cout << 2 * even;else if (odd + 1 == even)cout << 2 * odd + 1;else cout << 2 * odd + 1;return 0;
}

思考:

1. 虽然代码不多,但是这个小题还是非常考验分类和分析的能力的,应该多练习一些这样的题目

2. 这里给几个例子帮助分析,odd + 1 <= even的时候比较容易分析,这里分析odd + 1 > even的情况,合并奇数之后只会得到三种情况,一种是二者相等,odd=9,even=6,合并奇数后odd=7,even=7;一种是odd + 1 == even,当odd=8,even=6,合并得到odd=6,even=7;一种是odd + 2 == even,当odd=7,even=6,合并得到odd=5,even=7。

USACO 2021 January Contest, BronzeProblem 2. Even More Odd Photos题解相关推荐

  1. USACO 2021 January Contest, BronzeProblem 3. Just Stalling题解

    题目描述 Farmer John 有 N 头奶牛(1≤N≤20),高度为 a1-aN.他的牛栏有 N 个牛棚,高度限制分别为b1-bN(例如,如果 b5=17,那么一头高度不超过 17 的奶牛可以住在 ...

  2. USACO 2021 January Contest, BronzeProblem 3. Just Stalling题解 贪心 排序

    已经鸽了好久了写一篇题解把 题目描述 Farmer John 有N头奶牛(1≤N≤20),高度为a1-aN.他的牛栏有N个牛棚,高度限制分别为b1-bN(例如,如果b5=17,那么一头高度不超过17的 ...

  3. USACO 2021 January Contest, Bronze. Problem 1. Uddered but not Herd

    题目描述 一个鲜为人知的事实是,奶牛拥有自己的文字:「牛文」.牛文由 26 个字母 'a' 到 'z' 组成,但是当奶牛说牛文时,可能与我们所熟悉的 'abcdefghijklmnopqrstuvwx ...

  4. USACO 2018 January Contest

    USACO 2018 January Contest 比赛链接 T1 MooTube 题目链接 题目大意:给定一个图,两个点之间的距离是他们路径上边权的最小值.给定一个起点,求距离大于等于K的点有几个 ...

  5. Promotion Counting【USACO 2016 January Contest, Bronze】

    今天来分享一下我做过的几道Usaco的比较简单的题,Usaco是美国的一个c++竞赛比赛,但是全球各地的人都可以参加,Usaco没有监考,全凭诚信,但是你拿着这个 作弊 借鉴来的成绩,所有美国的大学都 ...

  6. USACO 2022 December Contest, BronzeProblem 1. Cow College 题解

    以下是2022年-2023年USACO赛季第一个月的青铜组第一题,可以使用"计数数组+打擂台找最值"的思想,需要考生掌握一点算法才能通关.文章引用了官网题面,提供思考思路和代码,代 ...

  7. USACO 2012 January Contest, Silver Division Solution

    T1是一道构图然后跑最短路的题. T2是一道裸的dp 然而我看了以后觉得爆搜是一定可以过掉的== 于是我先来一发二进制枚举,然后two points 维护答案.. T3是一道神题 首先要分类讨论,然后 ...

  8. USACO 2015 January Contest Bronze——奶牛的旅行路线

    文章目录 题目描述 输入格式 输出格式 数据范围 输入样例 输出样例 实现代码--奶牛只想走一条路线的情况下 题目描述 厌倦了农场寒冷的冬季天气,奶牛贝茜计划飞往一个温暖的目的地度假. 不幸的是,她发 ...

  9. USACO 2020 December Contest, BronzeProblem 2. Daisy Chains题解

    题目描述: 每天,作为她绕农场行走的一部分,奶牛 Bessie 会经过她最喜爱的草地,其中种有 N 朵花(五颜六色的雏菊),编号为1-N(1≤N≤100),排列成一行.花 i 有 pi 朵花瓣(1≤p ...

  10. USACO 2022 January Contest, Bronze

    Problem 1. Herdle 奶牛们发明了一种名为 Herdle 的新型解谜游戏,在牛界引起了轰动. 每天都会有一个新谜题发布供奶牛解决.游戏采用 3x3 方阵的形式表示农场的一块田地,田地的每 ...

最新文章

  1. 基于linux的ARM设备升级,烧写Nand flash总结
  2. Zookeeper的目录结构
  3. linux下的tmpfs目录重启后文件全部消失
  4. 如何利用SQL求取微信的共同好友数?
  5. 计算机课堂教学改革培训心得体会,教学改革培训心得体会(精选3篇)
  6. python variable_PyTorch中的Variable变量详解
  7. bpsk调制及解调实验_无线通信中的IQ调制,BPSK调制,QPSK调制,16QAM调制的理解...
  8. mysql5.0.27+apache2.0.59+php5.2.0+phpMyAdmin-2.6.4-pl3
  9. 用bcp实现的存储过程 导整个数据库
  10. apache camel 相关配置_Web基础配置篇(二): Maven配置及使用
  11. java内存堆栈的区别
  12. 海康sip服务器地址协议,海康摄像头的GB28181的sip服务器+ZL流媒体+前台测试页面...
  13. pc端html转换手机端,一种兼容PC端和手机端WEB界面的实现方法与流程
  14. wps大纲栏显示在右边_隐藏显示word页面标记,就这么几招,你会吗?
  15. Discuz模板制作教程
  16. 【新书推荐】Interpretable Machine Learning with Python
  17. 小米手机TCP连接一些奇怪现象
  18. 解决Excel中使用VBA出现microsoft visual c++ runtime错误
  19. 用 SLF4j/ Logback打印日志
  20. .net core webAPI 使其同时支持返回json或xml

热门文章

  1. python裂缝检测_通过opencv-python检测裂缝
  2. Linux LED子系统调试与应用 设备树官方文档与 gpio-leds.c 源码详解
  3. 计算机有文件无法删除,w7文件夹删不掉如何删掉_win7电脑有的文件夹删不掉怎么办...
  4. 读《卧底经济学》有感
  5. 谷歌浏览器的internet选项在哪里
  6. 快速入门Unity机器学习:三:
  7. iphone个系列尺寸_不同尺寸的iphone截图看起来一样大吗?
  8. 浅显易懂描述傅立叶级数和傅立叶变换的关系
  9. HDU 4565解题报告
  10. 工程项目成本费用明细表_项目工程成本不会测算?全套Excel自动计算表,可直接套定额...