本文主要是介绍题解: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<bits/stdc++.h>
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;
}
这篇关于题解:CF1902A. Binary Imbalance的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!