题解:CF1902A. Binary Imbalance

题解:CF1902A. Binary Imbalance

先给个题目链接。

题目翻译(由“CodeForces Better!”和“DeepL 翻译”提供):

我们知道,如果初始字符串中“0”的个数就大于“1”的个数,答案肯定是YES,否则,对于其他情况,肯定需要添加“0”使得“0”的个数大于“1”的个数。要想添加“0”,则必须满足“在字符串中存在相邻两个不相等的字符”,不难得出一定是一个“1”和一个“0”(即“10”或“01”)。如果在这样两个字符中间添加一个“0”,就变成了“100”或“001”,显然一定仍旧存在一个“10”或“01”,因此只要字符串中包含“10”或者“01”答案就是YES,否则就是NO。

由于简单直接放代码。

#include
using namespace std;
string s="";
int n=0,t=0,x=0,y=0;
int main(){
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        cin>>s;
        x=0;
        y=0;
        for(char i:s){
            if(i=='0'){
                x++;
            }else{
                y++;
            }
        }
        if(x>y||s.find("01")!=-1||s.find("10")!=-1){
            printf("YES\n");
        }else{
            printf("NO\n");
        }
    }
    return 0;
}

你可能感兴趣的:(算法,c++)