Codeforces #180 div2 C Parity Game
// 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的更多相关文章
- Codeforces #541 (Div2) - E. String Multiplication(动态规划)
Problem Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...
- Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)
Problem Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...
- Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)
Problem Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...
- Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)
Problem Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...
- 【Codeforces #312 div2 A】Lala Land and Apple Trees
# [Codeforces #312 div2 A]Lala Land and Apple Trees 首先,此题的大意是在一条坐标轴上,有\(n\)个点,每个点的权值为\(a_{i}\),第一次从原 ...
- Codeforces #263 div2 解题报告
比赛链接:http://codeforces.com/contest/462 这次比赛的时候,刚刚注冊的时候非常想好好的做一下,可是网上喝了个小酒之后.也就迷迷糊糊地看了题目,做了几题.一觉醒来发现r ...
- codeforces #round363 div2.C-Vacations (DP)
题目链接:http://codeforces.com/contest/699/problem/C dp[i][j]表示第i天做事情j所得到最小的假期,j=0,1,2. #include<bits ...
- codeforces round367 div2.C (DP)
题目链接:http://codeforces.com/contest/706/problem/C #include<bits/stdc++.h> using namespace std; ...
- codeforces 235 div2 C Team
题目:http://codeforces.com/contest/401/problem/C 题意:n个0,m个1,求没有00或111的情况. 这么简单的题..... 做题的时候脑残了...,今天,贴 ...
随机推荐
- [ACM] POJ 3686 The Windy's (二分图最小权匹配,KM算法,特殊建图)
The Windy's Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 4158 Accepted: 1777 Descr ...
- .NET应用架构设计—工作单位模式(摆脱程序代码的重要思想,反击DDD)
阅读文件夹: 1.背景介绍 2.过程式代码的真正困境 3.工作单元模式的简单演示样例 4.总结 1.背景介绍 一直都在谈论面向对象开发.可是开发企业应用系统时.使用面向对象开发最大的问题就是在于,多个 ...
- SGU 200. Cracking RSA(高斯消元+高精度)
标题效果:鉴于m整数,之前存在的所有因素t素数.问:有多少子集.他们的产品是数量的平方. 解题思路: 全然平方数就是要求每一个质因子的指数是偶数次. 对每一个质因子建立一个方程. 变成模2的线性方程组 ...
- poj 1274The Perfect Stall
第一次接触二分图匹配. 这题是一个匈牙利算法的模板题直接套即可. 题意是 给你奶牛和谷仓的个数a和b,接下来a行是奶牛喜欢去的谷仓.第一个是谷仓个数,接下来是谷仓编号. 这里我们把行当奶牛,列当谷仓 ...
- js在方法Ajax请求数据来推断,验证无效(OnClientClick="return Method();"),或者直接运行的代码隐藏
function CheckAdd() { var flag = true; $.ajax({ cache: false, async: false, url: "/ajaxpage/get ...
- Winpcap网络编程十之Winpcap实战,两台主机通过中间主机通信
注:源码等等的我不会全然公开的,此篇文章写出来为大家的网络编程或者课程设计提供一定的思路.. 好,本次我们须要完毕的任务是: 完毕两台主机通过中间主机的数据通信(网络层) 添加基于IP地址的转发功能 ...
- docker搭建基础的tomcat应用
tomcat server是眼下比較流行的开源中间件server,以下介绍怎样使用 docker 来做一个 tomcat 数据库服务.官方的仓里没有标 OFFICIAL 的 tomcat 的镜像,只是 ...
- document.all使用
document.all 一个. document.all它是在页面中的所有元素的集合.例如: document.all(0)一个元素 二. document.all能够推断浏览器是否是IE ...
- jQuery整理笔记文件夹
jQuery整理笔记文件夹 jQuery整理笔记一----jQuery開始 jQuery整理笔记二----jQuery选择器整理 jQuery整理笔记三----jQuery过滤函数 jQuery整理笔 ...
- JAVA解决大数
主题链接:CLICK HERE~ 有了Java求解大数变得如此简单,以后再也不用操心大数模板了.哦啦啦啦. import java.math.BigInteger; import java.math. ...