// Codeforces #180 div2 C Parity Game
//
// 这个问题的意思被摄物体没有解释
//
// 这个主题是如此的狠一点(对我来说,),不多说了这
//
// 解决问题的思路:
//
// 第一个假设a字符串和b字符串相等,说直接YES
// 假设b串全是0,直接YES
// 注意到a串有一个性质,1的个数不会超过本身的加1.
// a有个1的上限设为x,b有个1的个数设为y,则假设x < y
// 那么直接NO。
//
// 如今普通情况下。就是模拟啦,找到a的后缀和b的前缀一样的
// 最长的长度设为buf。之后对buf之后的部分进行扫描,假设
// b[i] == '1' ,则在a串的前suf中找一个1,把它添到后面,
// 这样就能够找到了。最后判一下在a中的j下标是否小于suf就能够了
//
// 注意:假设開始a中1的个数是1的时候那么在第一次找到b[i]是1的
// 时候,不用找1.
//
// 解题:
//
// 这样的字符串的题目,情况相对时有那么一点多,关键是曾经看过前缀和后缀
// 作为状态进行转移的动态规划,所以相对有那么一点感觉。感觉是对了。但
// 经历的时间还是太长了。继续练吧。。。。 #include <algorithm>
#include <bitset>
#include <cassert>
#include <cctype>
#include <cfloat>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>
#include <functional>
#include <iostream>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <vector>
#define ceil(a,b) (((a)+(b)-1)/(b))
#define endl '\n'
#define gcd __gcd
#define highBit(x) (1ULL<<(63-__builtin_clzll(x)))
#define popCount __builtin_popcountll
typedef long long ll;
using namespace std;
const int MOD = 1000000007;
const long double PI = acos(-1.L); template<class T> inline T lcm(const T& a, const T& b) { return a/gcd(a, b)*b; }
template<class T> inline T lowBit(const T& x) { return x&-x; }
template<class T> inline T maximize(T& a, const T& b) { return a=a<b? b:a; }
template<class T> inline T minimize(T& a, const T& b) { return a=a<b? a:b; } const int maxn = 1008;
string a;
int fa[maxn];
string b;
int fb[maxn];
int x,y;
int len1,len2;
int suf;
bool cmp(int u){
for (int i=u;i<u+len2;i++){
if (a[i]!=b[i])
return false;
}
return true;
} void solve(){
string s; suf = -1;
int i;
for (i=len1-1;i>=0;i--){
s = a.substr(i);
if (s==b.substr(0,len1-i)){
suf = i;
break;
}
}
//cout <<
// cout << a << endl;
// cout << b << endl;
//cout << "suf = " << suf << endl;
int flag = 0; //cout << "fb = " << fb[len2-1] << endl;
if (suf == -1)
suf = len1-1;
int x = len1 - suf;
int j = 0;
int even = 0;
//cout << " x " << x << endl;
i = x;
if (fa[len1]&1){
b[i] == '0';
while(!a[j]&&j<suf)
j++;
j++;
}
for (; i < len2; i++) {
if (b[i]=='1'){
while(j<suf){
if (s[j]=='1'){
break;
}
j++;
}
}
}
if (j<suf){
puts("YES");
}else {
puts("NO");
}
} void init(){
memset(fa,0,sizeof(fa));
memset(fb,0,sizeof(fb));
len1 = a.size();
len2 = b.size();
x = 0;
y = 0;
int i;
for (i=0;i<len1;i++){
if (a[i]=='1'){
x++;
fa[i] = x;
}
}
for (i=0;i<len2;i++)
if (b[i]=='1'){
y++;
fb[i] = y;
}
if (( !(x&1) && x < y) || ((x&1) && x+1 < y)){
puts("NO");
return ;
} if (!fb[len2-1]){
puts("YES");
return ;
} solve(); } int main() {
//freopen("G:\\Code\\1.txt","r",stdin);
while(cin >> a >> b){
if (a==b){
puts("YES");
continue;
}
init();
}
return 0;
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

Codeforces #180 div2 C Parity Game的更多相关文章

  1. Codeforces #541 (Div2) - E. String Multiplication(动态规划)

    Problem   Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...

  2. Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)

    Problem   Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...

  3. Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)

    Problem   Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...

  4. Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)

    Problem   Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...

  5. 【Codeforces #312 div2 A】Lala Land and Apple Trees

    # [Codeforces #312 div2 A]Lala Land and Apple Trees 首先,此题的大意是在一条坐标轴上,有\(n\)个点,每个点的权值为\(a_{i}\),第一次从原 ...

  6. Codeforces #263 div2 解题报告

    比赛链接:http://codeforces.com/contest/462 这次比赛的时候,刚刚注冊的时候非常想好好的做一下,可是网上喝了个小酒之后.也就迷迷糊糊地看了题目,做了几题.一觉醒来发现r ...

  7. codeforces #round363 div2.C-Vacations (DP)

    题目链接:http://codeforces.com/contest/699/problem/C dp[i][j]表示第i天做事情j所得到最小的假期,j=0,1,2. #include<bits ...

  8. codeforces round367 div2.C (DP)

    题目链接:http://codeforces.com/contest/706/problem/C #include<bits/stdc++.h> using namespace std; ...

  9. codeforces 235 div2 C Team

    题目:http://codeforces.com/contest/401/problem/C 题意:n个0,m个1,求没有00或111的情况. 这么简单的题..... 做题的时候脑残了...,今天,贴 ...

随机推荐

  1. java代码 分解EXCEL(一)

    一,service层接口定义: ExcelParseService.java 一,service层接口实现: ExcelParseServiceImpl.java watermark/2/text/a ...

  2. Spring FrameWork4(MVC + IOC)高速入门实例

    使用Maven创建project并配置依赖项 首先创建一个Maven Project: 然后选择创建Maven 的webapp实例,当然也能够通过命令行方式创建Maven webapp的项目再转化并导 ...

  3. C# 开机自动启动程序

    原文:C# 开机自动启动程序 新建一个winform拖一个checkbox进来.. 然后设置它的changed事件. 已经测试过,可以直接复制使用. private void checkBox1_Ch ...

  4. 解决ASP.NET Web API Json对象循环参考错误

    前言 一般我们在开法 ASP.NET Web API 时,如果是使用 Entity Framework 技术来操作数据库的话,当两个 Entity 之间包含导览属性(Navigation Proper ...

  5. Ext,保存输入记录,并会提示输入

    Ext的ComboBox组件使用非常多,通过配置输入框可以被允许成为一个.并可以存储输入记录,记录提示的基础,然后进行再次进入,以提高的用户体验输入操作. 代码非常easy,基本操作,如以下: // ...

  6. epoll()无论涉及wait队列分析

    事件1. epfd-file->eventpoll->wq: struct eventpoll {     ...     wait_queue_head_t wq;     //用于ep ...

  7. ASP.Net中上传文件的几种方法

    在做Web项目时,上传文件是经常会碰到的需求.ASP.Net的WebForm开发模式中,封装了FileUpload控件,可以方便的进行文件上传操作.但有时,你可能不希望使用ASP.Net中的服务器控件 ...

  8. 跟Bob大叔观OO原则

    上篇总结了经典的23种 设计模式,详细的解读后期会陆续的详细揭开.使用设计模式的根本原因就是为了增强代码的复用性和可维护性.而面向对象是实现代码复用的有效途径,所以这里有必要了解一下OO的基本思想和原 ...

  9. ECLIPSE IDEA 调音 1

    为自己所用IDE进行jvm优 首先进行日志输出配置 Eclipse  改动eclipse.ini IDEA   改动 idea.exe.vmoptions 添加打印日志的配置參数 -XX:+Print ...

  10. mariadb 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    [root@localhost /]# systemctl stop mariadb.service[root@localhost /]# mysqld_safe --user=mysql --ski ...