# 官方题解|欢乐赛#41 T6
2025-02-19 17:24:25
发布于:浙江
28阅读
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;
}
这里空空如也
有帮助,赞一个