正题
nowcoder 20107-A
题目大意
给你两个01串,有若干询问,每次询问两段长度相等的字串不同位数的奇偶性
解题思路
因为只用判断奇偶性,所以同时修改两个字符是不会改变结果的,那么可以直接将字串修改为只有0/1个1的串,然后判断不同位数
所以直接求前缀和,然后判断奇偶性是否相等即可
code
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 200210
using namespace std;
int n,m,q,l,r,L,R,a[N],b[N];
char S[N],T[N];
int main()
{scanf("%d%d",&n,&m);scanf("%s%s",S+1,T+1);for(int i=1;i<=n;++i)a[i]=a[i-1]+S[i]-48;for(int i=1;i<=m;++i)b[i]=b[i-1]+T[i]-48;scanf("%d",&q);while(q--){scanf("%d%d%d%d",&l,&r,&L,&R);if(((a[r]-a[l-1])&1)==((b[R]-b[L-1])&1))puts("0");else puts("1");}return 0;
}