3359. 更多奇怪的照片

摘要
Title: 3359. 更多奇怪的照片
Tag: 贪心
Memory Limit: 64 MB
Time Limit: 1000 ms

Powered by:NEFU AB-IN

Link

3359. 更多奇怪的照片

  • 题意

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

  • 思路

    由于要求出最大组数,先将他们每个数字划分为一组,统计出奇数组和偶数组的初始数量

    易得一个性质:每两个奇数组可以合并成一个偶数组
    那么接下来的工作就简单了:每减少两个奇数组,增加一个偶数组,直到偶数组>=奇数组。这么做的原因是因为为了满足题意,要让偶数组和奇数组尽量多的同时,还要尽量相等

  • 代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    '''
    Author: NEFU AB-IN
    Date: 2022-05-22 20:59:08
    FilePath: \ACM\Acwing\3359.1.py
    LastEditTime: 2022-05-22 21:00:23
    '''
    n = int(input())

    odd, even = 0, 0

    a = list(map(int, input().split()))

    for i in a:
    if i & 1:
    odd += 1
    else:
    even += 1

    while odd > even:
    odd -= 2
    even += 1

    if odd == even:
    print(odd * 2) #如果奇数组最后数量和偶数组相同,那么最终的组数就是偶数组+奇数组
    else:
    print(odd * 2 + 1) #否则就是奇数组的数量小于偶数组的数量,那么最终除了每个偶数组和奇数组对应上,还会在末尾形成一个偶数组,即类似于 偶,奇,偶,奇,偶 这样的排列
使用搜索:谷歌必应百度