CF1913B Swap and Delete 题解
思路。
这是一道挺简单的贪心,由于题目中说交换操作免费,所以我们尽量使用交换,不能交换了再用删除。
求要用的钱也很简单,我们用两个变量分别储存字符串中
要在每次减之前判断一下数量是否为空,为空就跳出,防止变成负数。
最后要删除的数量就是
AC代码。
#include<bits/stdc++.h>
using namespace std;
int t,z,o,c;
string s;
int main(){
cin>>t;
while(t--){
c=z=o=0;
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]=='0'){
z++;
}
else o++;
}
for(int i=0;i<s.size();i++){
if(s[i]=='0'){
if(o>0)
o--;
else break;
}
else{
if(z>0){
z--;
}
else break;
}
}
cout<<o+z<<endl;
}
return 0;
}
本文作者:IOI_official
本文链接:https://www.cnblogs.com/IOI-official/p/18144064
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步