非官方题解|挑战赛#21-T4
2025-08-13 10:50:33
发布于:湖北
2阅读
0回复
0点赞
T4小午的构造
-
难度:普及-
-
思路分析
- 优先构造
ac
单词:
首先计算能构造的ac
单词数量 ,取 和 的最小值
这样能同时消耗 和 ,保证不浪费 字母(字母仅能构造ac
) - 处理剩余字母:
计算构造ac
后剩余的 数量
计算能构造的wa
数量 ,取 和 的最小值
调整 使得剩余的 能两两组合成aa
wa
尽可能的少 - 构造aa单词:
剩余 数量为 ,计算能构造的aa
数量
确保所有字母被用完且wa
数量最少
-
通过代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int x,y,z; //a,c,w的数量
cin>>x>>y>>z;
//构造所有可能的ac单词
int c=min(x,y);//ac数量取a和c的较小值
int r=x-c; //构造ac后剩余的a数量
//计算可能的wa数量
int w=min(z,r);//wa数量取w和剩余a的较小值
//调整w使剩余a能两两组合
w=max(w-(r-w)%2,0);//确保(r-w)是偶数
//计算aa数量
int a=(r-w)/2; // 剩余a构造的aa数量
cout<<c+a+w<<' '<<w<<endl;
}
}
-
时间复杂度分析:
仅有处理 组测试用例是涉及循环,时间复杂度 。
这里空空如也
有帮助,赞一个