Programming_Konjac 2023-03-17 14:50 采纳率: 33.3%
浏览 29
已结题

嗯~这玩意我陷入了沉思

分组游戏
时间限制:1秒 内存限制:128M
题目描述
小可所在的班级要分组进行游戏,小可作为班长,要负责分组这个任务。
给小可的要求是:
1、每组有且只能有4位同学。
2、每组至少有一名男生和一名女生。
如果有同学没有组可分,那么会被安排玩另外的游戏。小可想知道最多能分多少组?

输入描述

第一行一个正整数t(1≤t≤10^4 ),代表有t组输入。
对于每组输入,有两个正整数a,b(0≤a,b≤10^9),分别代表有
a位男生和b位女生。

输出描述
对于每组输入,输出最多分多少组。
样例输入
6
5 5
10 1
2 3
0 0
17 2
1000000000 1000000000
样例输出
2
1
1
0
2
500000000

  • 写回答

3条回答 默认 最新

  • lshen01 2023-03-17 14:57
    关注

    参考GPT和自己的思路:

    根据题意,我们需要将男生和女生分组,每组必须有一名男生和一名女生,并且每组人数不能超过4人。因此我们可以按照以下思路进行分组:

    1. 先将男生和女生分别按照人数从小到大排序。
    2. 当男生和女生都不为0时,每次选择一名男生和一名女生放入一组中,直到不能再放置时停止。
    3. 如果还有剩余的男生或女生,可以将一名男生和两名女生放入一组中,或者将三名女生放入一组中,直到没有剩余为止。

    最后统计能够分成的组数即可,注意有可能存在男生或女生总人数不足4人的情况,应该特判一下。下面是具体的代码实现:

    t = int(input())  # 输入测试数据组数
    
    for _ in range(t):
        a, b = map(int, input().split())  # 输入男生和女生人数
    
        # 按照人数从小到大排序
        if a > b:
            a, b = b, a
    
        # 特判男生或女生总人数不足4人的情况
        if a == 0 or a+b < 4:
            print(0)
        else:
            # 每组人数不能超过4人
            group_num = min(a, b, (a+b)//3, (a+b)//4)
            print(group_num)
    

    运行结果与样例输出一致。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月25日
  • 已采纳回答 3月17日
  • 创建了问题 3月17日

悬赏问题

  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)