Parity Game CodeForces - 298C
Posted 啦啦啦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Parity Game CodeForces - 298C相关的知识,希望对你有一定的参考价值。
You are fishing with polar bears Alice and Bob. While waiting for the fish to bite, the polar bears get bored. They come up with a game. First Alice and Bob each writes a 01-string (strings that only contain character "0" and "1") a and b. Then you try to turn a into b using two types of operations:
- Write parity(a) to the end of a. For example, .
- Remove the first character of a. For example, . You cannot perform this operation if a is empty.
You can use as many operations as you want. The problem is, is it possible to turn a into b?
The parity of a 01-string is 1 if there is an odd number of "1"s in the string, and 0 otherwise.
Input
The first line contains the string a and the second line contains the string b (1?≤?|a|,?|b|?≤?1000). Both strings contain only the characters "0" and "1". Here |x| denotes the length of the string x.
Output
Print "YES" (without quotes) if it is possible to turn a into b, and "NO" (without quotes) otherwise.
Example
01011
0110
YES
0011
1110
NO
Note
In the first sample, the steps are as follows: 01011?→?1011?→?011?→?0110
题意:
对01串存在两个操作: (1) 从串首删除一个字符 (2) 在串尾添加一个字符(当1的个数是奇数时添加1,否则添加0)
题解:
不考虑0的作用,因为每次要么添加,要么删除,那么1的个数最多是原来的数或者原来的数加一。
1 #include<cmath> 2 #include<cstdio> 3 #include<string> 4 #include<cstring> 5 #include<iostream> 6 #include<algorithm> 7 using namespace std; 8 9 int main() 10 { string a,b; 11 cin>>a>>b; 12 int suma=0,sumb=0; 13 for(int i=0;i<a.size();i++) if(a[i]==‘1‘) suma++; 14 for(int i=0;i<b.size();i++) if(b[i]==‘1‘) sumb++; 15 suma=suma+suma%2; 16 if(suma>=sumb) cout<<"YES"<<endl; 17 else cout<<"NO"<<endl; 18 }
以上是关于Parity Game CodeForces - 298C的主要内容,如果未能解决你的问题,请参考以下文章