# 官方题解|欢乐赛#41 T6
2025-02-19 17:24:25
发布于:浙江
29阅读
0回复
0点赞
T6.组队问题
题目思路
本题可以直接枚举有多少高手按照「1高手,2菜鸟」的组队方式进行组队,然后可以计算出和这些高手匹配完以后剩下的菜鸟数left,这些菜鸟按照「1菜鸟,2高手的方式组队」,能组队的数目是 和 left 的最小值,其中  是剩下的高手数目。
参考代码
#include <bits/stdc++.h>
using namespace std;
void solve(){
    int n, m;
    cin >> n >> m;
    int ans = 0;
    //team1:1高手2菜鸟,team2:2高手1菜鸟
    for(int i = 0; i <= n; i ++ ){//枚举有多少个高手成为team1的选手
        int cur = i;
        long long left = m - 2ll * i;
        if(left >= 0){//保证剩下的菜鸟数目要大于等于0才合法
            cur += min(1ll * (n - i) / 2, left);
            ans = max(ans, cur);
        }
    }
    cout << ans << endl;    
}
int main(){
    int t;
    cin >> t;
    while(t -- ){
        solve();
    }
    return 0;
}
这里空空如也

有帮助,赞一个